Implement lexing on an interface type

Nothing too fancy, just feel that a concrete type would make this
code easier to write than a few functions that share state via pointers.

Some of the investigation I was doing with goyacc is helping inform how I'd
like this to progress. It seems that writing enough of this lexer to swap it
into the yacc parser would be helpful at this point. Then having enough of the
yacc parser complete to write a small interpreter would be the next goal.