Added procedure types, unified variable and procedure scope
Add assignments to variable declarations
Add Type::equals()
Split out Symbol and Scope into separate files
Create Program/Procedure structures to encapsulate early program information
Added printing for programs
Construct procedure type names correctly
Use variables from Procedure to construct IR::Procedure symbols
Added array types and declaration parsing
Added lookahead to parser
Added parsing/type checking for 'new'
Fixed comparison for intrinsic types
Added Multiply Immediate instruction
Add IR and VM instructions for new
Added void procedures
Clean up printouts