Add function to change `Forall's to `Exists' in an `SType'
Fix bug in uniqueTypes. Should only reindex Foralls!
Fix bug in pushContext

* When using put instead of modify several of the old values in the
  state was restored to its previous (probably wrong) value. Most
  notably `td' which caused some types to become non unique (!!) when
  added to the context.
Remove matches in randomMatching with incompatible substitutions
Fix bugs in match and getMatching

* (VarT n1) and (VarT n2) should only match if n1 == n2.
* If there is an (n, Exists) on either side when matching make sure
  the other matching SType doesn't contain the variable (n, Exists).
* Fix some issues by using the function `applys' which applies a
  substitution until a fix point is reached.
* Fix bug where a substitution returned from match could contain a
  Forall variable instead of an Exists variable since variables where
  only converted from Forall to Exists in the type returned and not in
  the substitution!
Show some output in the gen testing code. Also all tests are passing!