Track origins of types for better error reporting

'Origin' now replaces 'Location' in the constructors of'Type a'.

Known issues:

* Builtin type variables don't have hints.  (Builtins do have hints, though.)
* type-error-3 is slightly confusing ('x's type is reported as 'Char').
* Hints in the 'ToText' instance of 'Type a' are verbose.