Order Makefile deps "properly" and allow parallelism

Expressing order dependencies between PHONY targets is
unnatural in GNU Make.  This patch introduces a hack in the
form of the SOFT_DEP_RULE macro which generates dependencies
between phony targets only if the phony targets would be
built anyway.

As a side effect, messing up the order of targets when
invoking 'make' is accepted:

    $ make test-abs build configure -n
    cabal configure --enable-tests
    cabal build
    cp lib/Prelude.ktn ./dist/build/kitten/Prelude.ktn
    cp lib/Prelude_*.ktn ./dist/build/kitten
    ./dist/build/kitten/kitten --no-implicit-prelude
    ./dist/build/kitten/Prelude.ktn
    ./test/run.sh $PWD/dist/build/Kitten/kitten "abs"
Prefix row variables with '.' in ToText

Before:

    (r1434 [Bool] Bool (r1433 Bool Bool -> r1433 Bool + ()) -> r1434 Bool + ())

After:

    (.r1434 [Bool] Bool (.r1433 Bool Bool -> .r1433 Bool + ()) -> .r1434 Bool + ())
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.)