Improved warnings/errors on redefined symbols.
Improved warnings/errors on redefined symbols.

- Changed signature to simplify calling code and be able to emit warnings and
  info messages in addition to errors.
- Only warnings for macro redefinitions.
- Only warnings for type redefinitions.

sheijk/Zomp,sheijk/Zomp,sheijk/Zomp,sheijk/Zomp,sheijk/Zomp