Major progress

Lexer framework now works, started adding in functions to
match specific tokens. Moved structs/enums back into single mod
(much more sensible)