Implement basic lexer and parser

Parser only supports function/variable definitions and calls, so
it's basically a lisp-with-fewer-parentheses at this point.
Add test stub for parser
Tweak the way the lexer handles newlines
Add a basic test for the parser
Fix issues with grammar

Function application was being parsed wrong so that (as an
expression) "a b c" parsed incorrectly to a(b(c)) rather than the
intended a(b, c).
Rejig tests to link with the lexer properly

Tests were using an old version of the lexer that was sitting
around, which would explain the strange errors I was getting
earlier.
Add a little missing documentation
Add tests for prefix operator calls
Factor out some common code in tests.