Interpreter can handle symbols
Symbols are registered once.

Having an object_id for this would be peachy keen, but until we need that
this test check the pointer value will have to suffice.
WIP: refactor lexer

Currently only accepts integers. Based almost entirely on Rob Pike's fantastic
talk on writing a lexer for Golang's template language.

Slides: http://rspace.googlecode.com/hg/slide/lex.html
UTubes: https://www.youtube.com/watch?v=HxaD_trXwRE
New lexer parses floats
New lexer parses single quote strings
New lexer will parse a symbol
New lexer will parse multiple lines

Kind of hairy to implement this -- I think there were some problems with
how we were matching newlines before. For now, just ignoring them until
we truly need load bearing newlines.
New lexer will tokenize a reference

(e.g.: to a variable, or a method, etc)
New lexer will tokenize call expressions

Well, most of them. Unsure about optional whitespace and whatnot.
Move state functions into separate files

Would really like to have these in a separate package, but I think that would
require writing an additional interface for the lexer that conforms to the

.emit()
.next()
.peek()
.ignore()

interface, and that's a bit more work than I'm willing to do at 9:34pm tonight.
Parser should be able to handle an empty file
{{squash me}} Switch from focused to pending tests
Parser can ignore newlines

Getting to the point where we'll need these for method definitions
New lexer can handle method declarations