Various work on parser, scanner, and ast.

Split some productions in the parser up for clarity, like moving math and
logic expressions from expr into their own nonterminals.

The parser now recognizes function calls with no need for parentheses around
the arguments. Yay! (We'll see how well it works when tested though...)

Added a few tokens and some comments to the scanner as well, grouping tokens
by type/function.