Added test typechecking code.

Won't merge to mainline until Andy has actually implemented floating point
support.
Merge branch 'type-checking'
Floating point support for the code generator

No such thing as floating point remainder.
All that's left is string concatenation and better booleans.