Classes, TODOs, and Lookahead

finished classes,
allowed the parser to look-ahead by stashing all type-checking until the end,
resolved most of the TODOs that I had in the project.
Differentiation between different numerical types preserved. "1.0" will not be interpreted as an Int, etc.
Started on a code emitter.
This code emitter emits *very* inefficient code, but it expects its user to run llvm's "opt" command to do all of the optimizations on the code.