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.
Move renamer splice functionality into a separate module.

This structure now matches that of the type checker.
Consolidate TH renaming.
Add syntactic support for typed expression brackets and splices.

Right now the syntax for typed expression brackets and splices maps to
conventional brackets and splices, i.e., they are not typed.
Add names for TExp type constructor and unType.
Differentiate typed and untyped splices and brackets in the abstract syntax.
Track the typed/untyped distinction in the current TH stage.

Also check for illegal typed/untyped bracket/splice combinations.
Check the staging restriction in the renamer.
Track TH stage in the renamer.
Add support for typed brackets and splices.
Clean up error context when checking brackets/splices.
Clean up smart constructors for splices.
Add support for pattern splices.