Tried some different things... not quite as good as first
Redo of top down parsing with memoization
Merge branch 'cleanup'

Conflicts:
	calc.py
	parse.py