Lexer: Add vim modeline.

Please adjust if necessary. The indention is weird.
Trying to fix syntax errors in Lexer, part 1
Fix function names.
According to Christian, Mode is not used anymore.
PreLexNode is supposed to be a type alias after all.
Added missing parameter in finalize.
LexNode is a type alias and not a constructor.
Fix ambiguous references.
Many small changes to let the Lexer module compile cleanly.

Done with help from Christian.

THIS NEEDS REVIEW!!