Make MT19937 code work.

This needed:
- adding xor, shr, shl operators.
- support hex constants ($nnnn)

Also introduced -g and -O1 options. -g doesn't give debug, but disables optimisation.

Also tidies up the IfExprAST code generation.