TcDeriv: s/isomorphism/coercible

in comments and function names, to use less names for the same thing.
With GND, report Coercible errors earliy

just like other type errors occurring during deriving.
Print nicer error message for Coercible errors

It now reads

   Could not coerce from ‛S a’ to ‛S (NT a)’

and does not mention Coercible any more (as discussed in #8567).
Refactor deferTcSForAllEq: Do not bind, but return EvTerm
Bind monadic stuff in getCoercibleInst locally, not via parameters
Handle Coercible (forall a. t) (forall a. t2) in TcInteract
More links to [Coercible Instances]
Remove dead code orphaned by implementing GND with `coerce`.
Rejig rejigConRes & friends, doing role checks in a second pass.

This commit is just a refactoring, intended to make the use of
rejigConRes (which sorts out the return types of GADT-like constructors)
less delicate. The idea is that, if we perform role checking in a
second top-level pass, we can use checkValidDataCon to check for
valid return types. Previously, checking roles would force the
rejigConRes thunk before we knew that rejigConRes was safe to call!
Fix location of spliced-in role annotations.
Move FunDeps to typecheck

That’s where all its users are...
Note [HyperStr and Use demands]

This note is a summary of an explanation by SPJ to me.
Some popular typos in comments
Refactor: Origin of inferred Thetas

When doing non-standalone deriving, annotate each individual
unsimplified constraint with its own CtOrigin. This is just the
refactoring, so the CtOrigin is still CtDeriv in each case.
Elaborate "deriving" error messages

If "deriving (C)" fails, it will now, if possible, indicate which
particular field of which constructor has caused the failure. (This
fixes #8576)
Mask async exceptions in forkM_

See #8006 for the reason why. This is not a fix as such; more of a workaround.
Export getHscEnv from HscMain
More detailed error message when GND fails

we now print the precise class method, with types, where the coercion
failed.
Fix note reference [WildCard binders]
Monoid instance for UniqSet