Add a multi-character token

Don't emit it yet.
Refactor tokenizer test runner

Parse the JSON to our token structs, rather than tokenizing to JSON.
Equip the tokenizer with an options struct
Optionally disable exact error detection in the tokenizer, and test it both ways

In the future, having error detection turned off will enable optimizations.
Run tokenizer tests with discard_bom = false
wip