Fix https://github.com/julianhyde/optiq/issues/113, "User-defined scalar functions".

A scalar UDF is defined by a class that has a single method called "eval". If the method is non-static, the class must be instantiable using a public 0-parameter constructor.
Oops!
Fix https://github.com/julianhyde/optiq/issues/33, "SQL parser should allow different identifier quoting".

Each of the identifier quoting styles ("double quoted", `back tick` and [bracketed]) is implemented as a lexical state, which the lexer enters as soon as it starts parsing. All tokens except identifiers are in common between those lexical states. This makes the lexer's table about 3x its previous size.