Add methods to convert Types to strings and fetch location.
Add on-left() and on-right() methods to Pair.
Add new CompileError for bad types.
Type checker now returns an AST and logs errors.

The type checker will now return a new AST that will eventually contain
extra type information. Errors that are discovered during type checking
are also logged and displayed at the end.
Test that multiple type errors are printed.