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.
Hide redundant type error "from here" messages

If there is a type error involving an annotated vector,
sometimes the error reported would include information about
the vector's element type.  This information is redundant if
the type of the element is declared.  (See the test cases
for some instances where the the redundant error is now
hidden.)