cleaned stuff up a bit
more docs, more cleaning up
improved buffer semantics
added token buffer and context

The new Lexer will parse a SourceBuffer as quickly as possible and store the
Tokens it generates in a TokenContext. The TokenContext uses a MemoryPool to
provide automatic garbage collection. A TokenBuffer may then be used to return
the whole of all Tokens, which the parser may consume and process. Pretty neat!