Zonk coercion types during flattening.
Don't examine zonked types inside the knot!
When homogenizing kinds, don't emit a Repr. wanted!

Say we had [W]: (t :: k1) ~ (s :: k2). This was homogenized to
become [W]: t ~ s |> g, where g :: k2 ~ k1. Of course, g has to
be representational. But we can still emit a *nominal* wanted
equality and then use SubCo. Otherwise, we need lifted and unlifted
representational equalities in the solver, and it all made my
head spin. This will have to be revisited if/when we have type-level
coerce, but at least my head has stopped spinning.
Revert "shameful" commit of considering ~R# like Coercible.
Add notes into GHC repo.
Comment only -- clarify the XEvTerm dealing with casts.
Comments only -- clarified the kind-role rejiggering notes.