Improve consistency checking for associated type-family instances

The "consistency" in this case is beteween the instance head
and the associated type instance head, which is made trickier
by the presence of kind variables that are not explicitly mentioned
in the class head.

See Note [Checking consistent instantiation] in TcInstDcls

This fixes Trac #7282.
Merge branch 'master' of http://darcs.haskell.org/ghc