Fully armed and operational parser.

Replaced parser with a pratt parser.
Added tests to demonstrate parser correctness.
Created printing and type enforcing visitors for the parse tree.