Clean up tostring() problems.

I thought that I fixed these during the merge, but apparently not.
Allow the editor to specify whether to allow type-checking.
Allow the type-checker to report things as unsupported.

Instead of raising exceptions and killing the compiler, it would be
nicer for the type-checker to just report some feature as unsupported.
Report better errors for unsupported features.

Instead of raising an exception for using an unsupported feature, return
a CompileError. This avoids killing the compiler, and also allows for
including location information which can eventually be hyperlinked.