Fix #9415.

Abort typechecking when we detect a superclass cycle error, as
ambiguity checking in the presence of superclass cycle errors can
cause a loop.
Test #9415 (typecheck/should_fail/T9415)
Test #9200. (polykinds/T9200)
Change definition of CUSK for data and class definitions (#9200).

Now, a CUSK is when (and only when) all type variables are annotated.
This allows classes to participate in polymorphic recursion.
Added more testing for #9200. (polykinds/T9200b)
Change treatment of CUSKs for synonyms and families (#9200).
Remove NonParametricKinds (#9200)

This commit also removes 'KindCheckingStrategy' and related gubbins,
instead including the notion of a CUSK into HsDecls.
Update manual (#9200).
Testsuite wibbles around #9200