Implement Unsatisfiable (GHC proposal 433)
This commit implements GHC proposal #433,
adding the Unsatisfiable class to the GHC.TypeError
module.
This provides an alternative to TypeError
for which error reporting is more predictable:
we report errors when we are reporting unsolved Wanted constraints.