Added --max-errors and related functionality.
Added support for source highlights.
Better highlighting/formatting of errors.
Reference/dereference fixes.

- Fixed generation of parens in dereference.
- checkCanDereference was called multiple times for a single @deref. That didn't matter when errors stopped compilation, but now we accumulate errors, so that had to be fixed.
- Indented @ref function.
Terminology change, easier to understand (for me at least).
ivar redeclaration shows name of previous class.
Fixed summary generation.
Fixed getMethod and getMethods, they weren't finding superclass def.
Generalized fatal errors.
Implemented objj_msgSend optimizations to MessageSendExpression.
Testing the length before a for loop is an infinitesimal optimization, skip it.
Fixed warnings in checkMethodOverride, added notes with ref to previous.
Ported code from latest Cappuccino compiler.
Miscellaneous tweaks.
Allow nodes to be removed from source map.

Previously source map nodes were created with each call to concat, but that won't work because when there is a shadowed ivar, we have to remove the "self." node. So now we generate the source map nodes only when the source map is requested.
Make the linters happy.
Show ivar declaration when issuing shadow warning.
Allow parent specification in format.

This allows us to handle the case where formatting changes based on the parent.
Format updates, added parent specs.
Fixed formatting of IfStatement.