Update the argument and return types on function redefinitions.

The argument types were not updated on redefinitions, because
differences were only detected on prototype/header parsing,
but the update was only done after having parsed the full
body.
Warn about inconsistent prototypes.

Emit a warning when an earlier function prototype has different
argument types than a later prototype or function header.
In pedantic mode make that an error.
Don't warn about inconsistent prototypes when weak-types are in effect.

With #pragma weak_types there is no effect when inconsistent prototypes
occur, as the argument types are not checked or saved. Also unknown
functions will prototyped just by calling them resulting in different
views on the number of arguments (for a possibly varargs function).
Therefore the warning about the deactivation of type checks should
not occur with weak_types.
Removed whitespace between version and local level.

Version and LOCAL_LEVEL should not have whitespace in
between.
New Defines: __VERSION_COMMITID__, __VERSION_LOCAL__

Commit ID and LOCAL_LEVEL are now exported to LPC.
pragma rtt_checks implicitly defines save_types.

rtt_checks does not work without save_types, so they
anyway have to come together.
(the alternative: warn if rtt_checks but no save_types
 is not really better.)