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>
Typos in comments
A bit more tracing of functional dependencies
Tidy up the printing of single-predicate contexts

This covers things like
   Eq a => blah   and   (?x::Int) => blah
where there is just one predicate. Previously we used an ad-hoc
test to decide whether to parenthesise it, but acutally there is
a much simpler solution: just use the existing precedence mechamism.

This applies both to Type and HsType.
Add a new section to the manual about hiding things that a module doesn't export

See Trac #9216
Improve documentation of defaulting rules with OverloadedStrings

See #9206
Make splitStrProdDmd (and similarly Use) more robust

The issue here is avoiding a GHC crash when a program uses
unsafeCoerce is a dangerous (or even outright-wrong) way.

See Trac #9208
Comment typo
Reject forall types in constraints in signatures

Fixes Trac #9196.  Thanks to archblob for an initial stab at this.
In the end I fixed it in the kind checker rather than the subsequent
validity check, (a) so that the error messages look more uniform,
and (b) so that I did not need to meddle with isPredTy.