Add exists/forall to TraverseT.
Some refactoring of TraverseT.

TraverseT instances are now invariant. We now have a new TraverseT case
class with instances for simple cases.