Temp fix for the preservation of the user provided types ordering
Some code cleanup and refactoring. Lexer now takes a list of 'LexerTypeObject' instead of a tagged dictionary ... thing. Big improvement.