Syntactic analyzer v1.1, Semantic Analyzer v1

Fixes all issues found in the previous version of SugarCane, and adds the implementation of a two-pass semantic analyzer for MiniJava.
As delivered to the powers-that-be on October 23, 2014.