redesign and reimplementation of tokenizer:

 - part 1 of total reimplementation of parser, splitting modules into data and functionality portions

 - tokens:  token definitions; throws exceptions if contract violated

 - tokenizer:  converts string to tokens, *returns* errors if input is bad

also:

 - MaybeError module + unit tests

 - work on consistency
clarify tokens interface and test
clarify Tokenizer interface