Comments only
Wibble in user docs
Fix the bytecode genreation for tagToEnum# (Trac #8383)

Reid Barton's diagnosis was right on the mark, though the fix
wasn't quite right.  See Note [Implementing tagToEnum#].

As usual I did some refactoring.
Improve pretty-printing of IfaceSyn type families
Simplify PprTyThing

In particular, don't import GHC (a historical hangover), which
makes this module live much lower down in the module hierarchy.

This in turn means we can call it from TcRnDriver
Simplify printing of boot-file mis-matches, by using PprTyThing.pprTyThing
Comments and white space only
Simplify the plumbing for checkValidTyCl

Instead of walking over the source decls, and looking up the Name
to find the TyCon or whatever, we just walk over the list of
TyThings that have been brought into scope.  This is much tidier.

The only wrinkle is that, since we don't have the original declaration,
we don't have its SrcSpan to put in the error message.  I fixed this
by making the SrcSpan for the TyCon itself be the span of the whole
declaration.  This actually makes sense anyway.

There are bunch of error message wibbles in consequence.