Fix #16391 by using occCheckExpand in TcValidity
The type-variables-escaping-their-scope-via-kinds check in
TcValidity
was failing to properly expand type synonyms, which led
to #16391 (closed). This is easily fixed by using occCheckExpand
before
performing the validity check.
Along the way, I refactored this check out into its own function, and sprinkled references to Notes to better explain all of the moving parts. Many thanks to @simonpj for the suggestions.