Deal with kind variables brought into scope by a kind signature
This fixes Trac #5937, where a kind variable is mentioned only in the kind signature of a GADT data SMaybe :: (k -> *) -> Maybe k -> * where ... The main change is that the tcdKindSig field of TyData and TyFamily now has type Maybe (HsBndrSig (LHsKind name)), where the HsBndrSig part deals with the kind variables that the signature may bind. I also removed the now-unused PostTcKind field of UserTyVar and KindedTyVar.
Showing with 40 additions and 56 deletions