Add `ExistsT' constructor to `Type'
Change `Substitution' to a mapping to `SType's instead of `Type's
Add an alias (|->) for singletonSubst and an "unions" function for Substitutions
Add `TypeChecking' module containing the `match' function.

* Contains a small discussion about the name and the implementation of
  the `match' function.
Add some trivial tests for the typechecking module