Refactoring and changes to GHC.Records design

This is currently broken, because the assertion in tcFldInsts  is
no longer valid with the new Has/Upd classes.