Add some more tests to parser
ast: __repr__ for for expressions
parser: Test for loops and fix for loop bug where all loops were downto
parser test: patterns
Add live test script for mac
AST: Add generic __repr__ for all AST nodes to ease debugging
livetest now depends on ast changes also
Parser test: fix whitespace
Parser test: letdef test
parser test: delete test
AST: Add precondition assertions for type parameter
Parse: rename some parse rules for clarity
Parse: Split simple_expr rules into several
Parse: Split for_expr rules into several

PLY doesn't allow deducing which grammar rule matched
and this often causes bugs.

We had a bug with `for` where all `for`s were `downto`
`for`s due to a string comparison which is not the responsibility
of the parser, but the lexer.

This fix makes it harder to introduce such bugs.
Type test: optimize=0
Test type: More verbose functional testing
Makefile: Put unit before functional tests
AST test: Regression test for __eq__ use of .type

__eq__ in AST Nodes assumes two objects of the same class
have the same attributes (no attributes are added in runtime).

This is not true with the current type table, because it modifies
ast.Constructor objects to add the `type` attribute. This regression
test ensures equality works between ast.Constructor objects that
are constructed manually and those that are passed through the type
table.

This is fixed in #25 and the regression test should pass.

This is related to the fact that semantic checks are currently done
before parsing is completed - this will change in future versions.
Parser test: Optimizations

* Memoize parsers at class level
* Use setUpClass() for simple expressions used across tests
Parser test: def_list test