Preliminary lexer and compiler
Add Token::setTypeIfNone()
Duplicate field token if a T_FIELD_VALUE follows T_FIELD_WEIGHT.

Simplifies the compiler (drop of a global var) at cost of a slightly
more complicated lexer
Add Token::getName() to get the token name from an int.
Add search field selector with @
Let lexer do more checking
Add escape character to lexer
Add lexer test
Fix starting position of recycled tokens
Compiler wraps QueryBuilder, add restrictions
Add documentation for QueryParser