Annotate the AST with the result of type inference.
Run all tests, even upon test failure
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`.

* Forgot.

TODO:

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

* Clean up type variable generation to remove the need for
  the hacks I have.  Maybe.

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

* Remove more redundant constructors.

* Sort definitions in lib/Kitten/Interpret/Monad.hs.

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

* Remove FIXMEs in AST instances.  (Why did I add them?)

* Proper ToText instance for Typed and Typed.Value.

* Verify yarn output hasn't changed.