Add shunting yard algorithm.
Lines and whitespace are now dealt with in the lexer.
One big return chained function.
Remove whitespace filter from parser