Fix #14729 by making the normaliser homogeneous
This ports the fix to #12919 (closed) to the normaliser. (#12919 (closed) was about the flattener.) Because the fix is involved, this is done by moving the critical piece of code to Coercion, and then calling this from both the flattener and the normaliser.
The key bit is: simplifying type families in a type is always a homogeneous operation. See #12919 (closed) for a discussion of why this is the Right Way to simplify type families.
test case: dependent/should_compile/T14729{,kind}