Fixed lexer nc buffering.
Added lexer token buffering.
Implemented some of const declaration.
Changed the parser to use "matches" less heavily and instead to use
explicit PeekToken look ahead since it leads to less ambiguity.