codegen: Emit diagnostic pragmas for GCC 14, Clang 16 compatibility
GCC 14 refuses to compile C sources with certain type errors, to
provide prompt feedback to programmers about mistakes.
Vala does not have the required information for const qualifiers
of parameters and return values which leads to incompatible-pointer
warnings/errors.
As a stop-gap measure, this commit introduces pragmata to turn the
relevant GCC/Clang diagnostics into warnings. For experimentation,
this can be avoided at C compilation time by defining VALA_STRICT_C.
Clang 16 is broadly similar, except that it is not possible to
turn the errors into warnings using #pragma. They have to be disabled
completely. In Clang 16 and 17, -Wincompatible-pointer-types is not
an error yet, but that is likely to change in future Clang versions,
so this commit disables this warning, too. Another error,
-Wincompatible-function-pointer-types has been split from that,
and needs to be disabled.