Guard CUSKs behind a language pragma
GHC Proposal #36 describes a transition plan away from CUSKs and to top-level kind signatures:
- Introduce a new extension, -XCUSKs, on by default, that detects CUSKs as they currently exist.
- We turn off the -XCUSKs extension in a few releases and remove it sometime thereafter.
This patch implements phase 1 of this plan, introducing a new language extension to control whether CUSKs are enabled. When top-level kind signatures are implemented, we can transition to phase 2.