Make Kitten.Kind.{Effect,Row,Scalar} a DataKind

This helps enforce type safety and makes it clearer what the
type parameter of Kitten.Type.Type means.
Distinguish type var by kind in 'ToText Type'

For example, a unification error may now show:

    t675? = (r676 -> r677 + e678)

instead of the confusing:

    t675? = (t676 -> t677 + t678)
Make 'Var' take 'TypeName a' instead of 'Name'

Increases type safety.
Tidy type variable numbers when reporting errors

Type variables now start at 1, and there are separate
namespaces for effects, rows, and types.

Currently, types are only tidied per error group, not
globally.  This is due to limitations of CompileError.
Remove unused 'Kitten.Type.Test' constructor

'Test' was unused; all references were merely pattern
matching and performing some default.
Travis CI integration
Bump minimum GHC version.
Add build status icon.
Add explicit row variable syntax for function types.

A function type's consumption and production may begin with a dot,
indicating that it explicitly specifies row variables. This permits
writing a type signature for the general 'compose' combinator. Explicit
row variables are outermost quantified, same as implicit ones.

Incidentally makes 'freshName' return a 'TypeName' instead of a 'Name'
for type safety.
Use new row type syntax to reduce builtin magic.
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.)
Remove unused 'Subtype' class.
Rip out old effect system.

It was a good experiment, but something better is planned.
Update ToText Pair to display pair structure as nested tuples '(a, (b, c))' rather than 'a b c pair pair'
Add file loading to REPL
Change REPL help to group related commands together in [square brackets]
Add ReplCommand structure to remove redundancy in 'repl' and 'help' functions