Finding: Add severity (warning/error) and message string
Phase: Make findings lazy and implement success on top of it
Token: Remove 'file' parameter

There's only one input file and the lexer shouldn't care about it,
anyway.
Implement the lexer via tries and mutually-recursive lex functions

Three keyword-related test cases still ignored
Lexer: recognize keywords
Add other whitespace tests