[C2hs] patch applied (c2hs): Split tokens and parser monad out of Lexer.x into their own modules