Add some infrastructure for reporting errors and warnings.

This is designed to allow for a stream of errors/warnings so that we can
respond to errors by trying to recover and continue parsing, and thus
report several errors at once.
Teach the parser how to parse the "pass" statement.

This is basically the simplest statement in the entire language, but it's
nice to actually have a working statement with which to implement and
test some infrastructure-ish stuff.
Add a simple error recovery capability to the parser.

This works by having the scanner try to feel its way to the end of
the line or block and then trying to parse another statement. For many
minor sorts of errors this should allow parsing to continue and recognize
further errors in the program in a single run.
Add a dummy "alac" tool.

One day this will actually be the compiler entry point, but for now it's
just a stub.