Enable parser to accept token arrays from lexer

I modified the parser to look for arrays returned by the lexer, and use them as a token stack. It always checks the token stack before calling lex, again. This is useful for returning pseudo tokens like INDENT DEDENT which facilitate semantic whitespace.