Remove Result class.

The Result class ended up being a failed experiment. While it kind of
worked, it was a struggle and had odd edge cases that made it difficult
to use. Instead, the Parser object will keep a list of errors and the
parse method will return null if the parse fails.
Add "expected term" error.
Add SourceLocation.

Lexer can now track which line and column number it is on. This is used
by the parser to report the location of syntax errors.
Add "expected binop or end".