This changes fixes a bad error in canonicalisation, concerning kind equality

We care careful not to construct a canonical equality whose LHS and RHS
have incompatible kinds.  (This is one of the invariants of a canonical
equality.)  See Note [Equalities with incompatible kinds].  However,
what I had not dealt with is when LHS and RHS *look* as if they have
different kinds, but after zonking they become the same.  Bad!

(This led to an ASSERT failure in the test for Trac #7176.)
Fix Trac #7805: don't allow nested foralls in promoted types
Fix Trac #7804, about floating equalites

We float unsolved equalities from underneath a 'forall', to
help solve them, in TcSimplify.floatEqualities.

It's regrettably delicate though,as this bug shows. I'm not
happy with the new code; but there are copious notes; see
Note [Float equalities from under a skolem binding].
Merge branch 'master' of darcs.haskell.org:/home/darcs/ghc