Consider equality contexts exotic, uninferrable by "deriving"

See comments in #8984. This takes back the fix for #6088.
Merge some instances from th-orphans.
Clarify that declaration splices exist at top level only. (#9880)
Update release notes for recent language and TH changes.
Add Jan Stolarek's test for Trac #9872
Add instance Lift Natural
Update Cabal submodule to latest 1.22 branch tip
Update directory submodule to latest snapshot

This pulls in

> make `getModificationTime` support sub-second resolution on windows
Update Cabal submodule to latest 1.22 branch tip
Update hoopl submodule to 3.10.0.2 rls

[skip ci]
Improved Backpack IR description. [skip ci]

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Optimize flattener by trying to reduce a TF before reducing its args.

This has a demonstrated 2x speed boost on the T9872{a,b,c} tests.
(#9872)
Change performance numbers for T3064
Use a new $b prefix for pattern synonym builder names, instead of re-using $W from wrappers
add runMeta hook

Summary:
The runMeta hook can be used to override how metaprogramming expressions
are evaluated. It makes the metaprogramming request types explicit and
has access to the TcM monad. This makes it a much more convenient starting
point for implementing out of process Template Haskell than the existing
hscCompileCoreExpr hook.

Reviewers: hvr, edsko, austin, simonpj

Reviewed By: austin

Subscribers: thomie, carter

Differential Revision: https://phabricator.haskell.org/D501
trac #9744, make program name and product version configurable through DynFlags/Settings

Summary:

This allows GHC API clients to use a package database and dynamic
library names that do not clash with those of the host GHC

This also updates the Haddock submodule.

Reviewers: hvr, austin

Reviewed By: austin

Subscribers: thomie, carter

Differential Revision: https://phabricator.haskell.org/D496
Check dflags for language extensions when deciding if "foreign " and "deriving "
look like prefixes of valid declarations (fixes #9915)
Add expected output to T9915 test
Strip leading whitespace before checking if a statement looks like a declaration (fixes #9914)
Update pretty and random submodules

This updates those two packages to their most recent respective proper
releases.