Add location information to exception stack traces

The lexer now captures line and column information for each token, and
this information is piped through the parser and into the interpreter.
Every packet that is raised by the interpreter has this information from
each node it encounters attached to its stack trace as it unwinds the
stack. Internal methods are just reported without location information.

Exceptions raised by the parser and interpreter are now all
sub-exceptions of the Grace exception Error. The parser does not yet use
location information in its own errors.