Finish implementing CommandBuilder for SELECT

I have the first edition of the the CommandBuilder implementation for
creating ISelectBuilder instances. It is running a bit slow, so I'll do
some profiling tomorrow to figure out what is going on.

I added the Negation class to support negating arithmetic expressions.

I switched NumericLiteral to use double instead of decimal, to support
scientific notation.