Ghc.Tc.Errors refactoring for Richard
This is very low-tech, as ideally I could have done this directly on the GHC's main repo, but in order to do that, I would have needed to push the adinapoli/message-class
branch directly into the GHC's tree, and I don't think I have permissions to do that.