Add yyextra to Lexer object

Add a yyextra field to allow passing a context object to the lexer.
This allows one to maintain state or to pass in additional information
required to interpret the lexed tokens.