Simplify Lexer

Lexer is now just a factory function with token
type information exported. The function now takes
only two parameters:

1. strInput (String): BBM Source code in String
2. disallowed (Array : String): An array of token
   types to be treated as TEXT tokens, instead of
   their intended semantics.