Improve IfaceSyn a bit further

This patch has three main bits:

* The most substantial change is that IfaceConDecl no longer
  records its universal type variables, because they are
  always the same as those of the parent TyCon.  A bit less
  fuss and clutter.

* Add a synonym for IfTopBndr = OccName, and explain why it's an
  OccName not a FastString

* Make the ifMinDef field be a (BooleanFormula IfLclName) rather
  than (BooleanFormula OccName).  These really are occurrences (not
  binders), and should be treated like other occurences.

The first and third change the format of interface files, so
you'll need to recompile.
Better debug printing
Line up kind and type variables correctly when desugaring TH brackets

This bug was causing Trac #9199
Fix elemLocalRdrEnv (Trac #9160)

This was pretty obscure.  elemLocalRdrEnv was utterly wrong (replied
False when it should reply True) when given an Exact Name. That
doesn't happen often, but it does happen in the result of a TH splice.
The result was that an associated type didn't get a type variable that
lined up with its parent class (elemLocalRdrEnv is used in
RnTypes.bindHsTyVars), and that messed up the singletons package.

I've made a completely different test case to show up the bug:
indexed_types/should_fail/T9160

I also refactored RdrName.LocalRdrEnv to be a record with named
fields, which makes the code more robust and easy to understand.
Bytes allocated by haddock.base has crept up (again)

I don't know why, and I don't like the steady increase.
But I don't think my changes here are the cause.
Remove forgotten redundant import
Fixes #95 :edit command should jump to the last error
Implement `Typeable` support for type-level literals (#8778).
Fix recomputation of TypeRep in the instance for Typeable (s a) (#9203)

Summary:
Every time we called typeRep on a type application, we were
recomputing the TypeRep.  This showed up in a benchmark I had: #9203.

Test Plan: Benchmark from #9203.

Reviewers: simonpj, austin

Subscribers: simonmar, relrod

Differential Revision: https://phabricator.haskell.org/D19
Update the incorrect comment on when function was introduced.
Redo instance to be more efficient (see #8778, #9203)
Optimise the Typeable instance for type app a bit, and add a perf test

Test Plan: validate

Reviewers: simonpj, austin

Subscribers: simonmar, relrod

Differential Revision: https://phabricator.haskell.org/D20
accept T9181 output

Not sure if my patch changed this, but it looks reasonable.
Haddock: haddock-library release and Travis stuff

Updates submodule.
Only comments:  add notes explaining the various oddities of the `Typeable` implementation for type-level literals.
In progress Backpack implementation docs.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
haddock-library: allow 7.4.x building

Updates submodule
Typo
Typos in comments
Finish the rest of the writeup.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>