Add TestCoercion instances for IORef and friends
IORef is morally an instance of
TestCoercion, because the term-level equality of
p :: IORef a and
q :: IORef b implies the existence of a
Coercion a b.
The same can be said for a number of other types.
TestCoercion instances (or
TestEquality if they are nominal in their type argument) for
Chan (in base) as well as similar types in stm and anywhere else.