Fix newtype instance GADTs
Summary: This was taken from Richard's branch, which in turn was
submitted to Phab by Matthew, which in turn was commandeered by Ryan.
This fixes an issue with newtype instances in which too many
coercions were being applied in the worker. This fixes the issue by
removing the data family instance axiom from the worker and moving
to the wrapper. Moreover, we now require all newtype instances
to have wrappers, for symmetry with data instances.
Reviewers: goldfire, bgamari, simonpj, mpickering
Reviewed By: mpickering
Subscribers: simonpj, rwbarton, thomie, carter
GHC Trac Issues: Trac #15318
Differential Revision: https://phabricator.haskell.org/D4902
(cherry picked from commit 927518668111584a06f12bd9eb1b0910a38acf4f)