Introduced TokenStream object, changed how lexers are compared for equality
Lexer frontend now .dumps() token stream instead of lexer
Moved token-related abstractions to separate modules
Updated init to recognize tokens module
Updated lexer frontend: more detailed Python tokenization