OverloadedRecordFields turns on TypeFamilies to support sugar

Is this the right thing to do?
Store field labels in IfaceConDecls rather than every IfaceConDecl
Fix bug in tcIfaceDataCons: must preserve order of field labels
Tweak class parameters once more, for better error messages
Now we don't need TypeFamilies
Solve constraints eagerly in tcFldInsts, to detect unused fields