Renamed SyntaxError to SyntaxException

After all, this is Java, not Python.
Added TypeChecker Visitor shell
Added IdChecker Visitor shell

Also included:
- ContextualAnalysisException thrown by IdChecker/TypeChecker
- IdTable (scoped identification table datatype)
Added dummy check() method
Implemented Compiler setup for PA3

IdChecker runs, followed by TypeChecker. ContextualAnalysisExceptions that arise during the execution of the Visitors are rewritten to STDOUT with the "***" prefix.
Implemented visitClassType
Changed error handling to STDOUT msg + exit

Inelegant, but time is of the essence
Added catch for IdTable.put() exception

Since IdTable.put()'s exception (IllegalStateException) is part of PA3 and contextual analysis, it should be prefixed with ***.
Added debug output to idTable; fixed put() checks

- open/close scope along with put now display indented debug output
- put() now checks for "declarations at level >=3 may not hide declarations at levels > 1"
Fixed bug in loop condition (got it backwards)
Made some changes to idTable output
Initial implementation of CA identification

Doesn't yet generate the correct QualifiedRef subclasses.
Applied consistent formatting
Added check for main method

Will only accept one "public static void main()" signature, /then/ checks if parameter is correct. This means that two methods "public static void main()" and "public static void main(String[] args)" should cause a "main method multiply declared" error.
Added type comparison method
fixup! Made some changes to idTable output
Added section dividers for visitX() methods
Fixed scope level 1 implementation

Members of the current class should be added to the idTable at scope level 1 before visiting them.
Formatting / FIXME note
Fixed selection of declaration