Simplify negated expressions.
Fix a bug which would give incorrect results for expressions like -(-x*5).
Fix broken encodeDoubleFloat/Integer.
Support WordQuotRemOp.
Make -O2 the default. Pass -O0 to disable optimizations.

-O2 generates quite a lot less code for Haste to optimize which makes that
pass go faster, so there doesn't seem to be any real impact on compilation
time.
Properly pretty-print negative numbers.