Implemented unary minus and parenthesis

Also renamed Lexer to GenericLexer and added MigraineLexer. Really need
to tidy up the tests. Someday...