Working fix for #9582, producing an acceptable error message.

The original plan to catch failing subtyping to report a custom error
concerning a too general instance signature did not work out, since it
does not harmonize with the philosophy of error handling in ghc.
Now I use PatSigOrigin to swap expected/actual type in the error
message generated by tcSubType.
This does the job, however, is a bit hacky.  I tried a more
principled solution with TypeEqOrigin, but except for PatSigOrigin,
instances of CtOrigin are ignore in tcSubType, or rather, converted to a
standard TypeEqOrigin (with expected/actual ordered not in the way I
want to).  This could be changed of course, bit there is a principal
risk of breaking something.