Look through tick-boxes when looking for integral literals in the desugarer

Fixes Trac #8334
Tidy up the commit for Trac #3725

In particular, the mi_ann_fn field in ModIface was only being used
totally locally in MkIface, so I made it local.

Other than that I just refactored data types slightly,
  * Adding synonym Annotations.AnnPayload for the cryptic Serialized
  * Adding MkIface.IfaceIdExtras to common up some of the identical code
Improve -XAllowAmbiguousTypes (Trac #8392)

* Add a suggestion to add AllowAmbiguousTypes when there is an
  ambiguity error

* Move some of the logic to tcSimplifyAmbiguityCheck

* Report inaccessible code regardless of the ambiguity check
Tiny comment on the change from StgWord8 to StgWord

c.f. commit 0b0fec536e35769b64b8bc5397c84138fa512155
Close over kinds when checking fundep coverage (Trac #8391)

See Note [Closing over kinds in coverage] in FunDeps