Fix accidental creation of rigid variables when type-checking mixed record types when a type alias is given

Fixes the issue raised by Alexander
style tweaks
Make impossible error more specific
Fix subtle bug with rigidVars vs rigidQuantifiers, was quantifing over the wrong variables in a forall