Show location when interpreter fails
Track location when interpreting builtins
Factor out duplication in file-opening builtins
Tighter type signture for completePrefix

Uses the ReplState type synonym instead of its expanded
form.
Sort definitions in lib/Kitten/Type.hs
Run all tests, even upon test failure
Annotate the AST with the result of type inference.
WIP Use typed AST where possible

The interpreter and yarn components now use the typed AST.

Auxiliary changes:

* String literals now have their own AST constructor
  (replacing Vector).  Strings are still typechecked as
  `[Char]`.

* `Scheme` is now a functor, allowing it to contain a `Type`
  or a `Typed`.  Uses of `Scheme` have been replaced with
  `TypeScheme` (an alias of `Scheme (Type Scalar)`).

* The `Def` of a typed AST now includes the type `Scheme`.

* The `Def` of a typed AST now refers to a `Scheme Typed`
  instead of a `Value` (or `Scheme Value`).

* The interpreter now has a separate type for runtime
  values, `InterpreterValue`.

* Many unused constructors of `Term` and `Resolved` (such as
  `Choice` and `Wrapped`) have been removed.

* `yarnValueInstruction` and `yarnValue` are now merged and
  total.

TODO:

* REPL stack stuff.  (Type checking and something else I
  forgot).

* Look carefully at TODOs and FIXMEs introduced in this
  patch.

* Fix empty compose problem in src/Main.hs.

* Proper ToText instance for Typed and Typed.Value.

* Verify yarn output hasn't changed.