Merge pull request #46 from TehMillhouse/master

Add parsing logic for class declarations, refactor
Make the parser accept arbitrarily nested blocks.

Stack overflows are avoided by returning early from potentially
recursive functions (here: parseStatement) and placing the "unfinished" item
(here: the block the statement is contained in) onto a parser stack. A
function of a higher level (here: parseBlock) will then work off the
stack in a loop.
Finish implementing expression parsing
Add tests for field accesses
Parser: Revert expression parsing to simple recursive-descent
Simplify ParserTest