Fixed error formatting.
Factored code to compile templates.
No need to use local functions in node, only exports are global.
Fixed setting of previous statement.
Dot notation will not work. null values fail when a dot is applied.
Format protocols nicely.
Since we have the luxury of running off disk, let's split things up to make it more manageable.
Move indentation into separate module, StringBuffer exports constructor.
First pass at more granular separation of functionality.
Fixed acorn so I can require the package.
Change --prefix to --macro-prefix, --prefix may be used later.
Better error message formatting.
More factoring, better error reporting, fixes.

- AST is generated separately from compilation by the runner. Better separation of concerns and modularity.
- Overhauled error generation. Errors are now generated via CompilerIssue subclasses.
- CompilerIssue knows how to generate messages that are formatted and colored like clang.
- Paths in error messages are relative to file being compiled.
- Previous declarations of ivars in superclasses are now warnings.
- Compilation does not stop when errors are encountered. Eventually I'll add a --max-errors option that will default to 50.
- Removed code that isn't used now and may not be used later.
- Reporter is functional now, takes care of printing issues along with a summary.