Implement OverloadedRecordFields and modify OverloadedLabels
This implements a new OverloadedRecordFields extension and modifies
the existing OverloadedLabels extension, as described in the GHC proposal:
This replaces D1687.
The users guide documentation still needs to be written, but I'll do that
after the implementation is merged, in case there are further design changes.
Test Plan: new and modified tests in overloadedrecflds
Reviewers: bgamari, simonpj, austin, hvr, goldfire
Subscribers: thomie, mpickering
Differential Revision: https://phabricator.haskell.org/D2708