half-finished implementation of a parse tree printer. Need to find out how it is used to make decisions about some technical things
the default ErrorHandler needs a MessageProducer, so a parser inherits
publicly from a MessageProducer
ICodeNode API makes use of std::unique_ptr
ErrorHandler is now used as a static class.
forward declare classes in namespaces
MessageProducer holds plain pointers
A Source does not inherit  from MessageProducer but uses a
MessageProducer. A _back reference is not needed to propagate messages
any more.
a fe::Parser contains a MessageProducer object and does not inherit
from one.
used FWD_DECL_ macro for forward declarations of classes.
Also made many changes to signatures that use MessageProducer objects.
Newline at end of file
fwd definitions
—syntax-only (-s) performs a syntax check only