pulled out internal classes from TextTokenizer so that the file is a little more managable and the lexers are friendlier to reuse
working on QuotedStringLexer; first (slow) impl complete
improved benchmark reporting code and evalutated that QuotedStringLexer runs at about 4ns per char (avg)
optimised QuotedStringLexer