Fix Trac #1470: improve handling of recursive instances (needed for SYB3)
This bug has been hanging around for a long time, as you'll see by its
number. The fix implements a feature that is really needed by SYB3, to
allow an instance to (rather indirectly) refer to itself. The trickiness
comes when solving the superclass constraints.
The whoel issue is explained in Note [Recursive instances and superclases]
in TcSimplify.
In cracking this one I found I could remove the WantSCs argument to the
ReduceMe flag, which is a worthwhile simplification. Good!