Use FlexibleInstances for `Outputable (* p)` instead of match-all instances...

Use FlexibleInstances for `Outputable (* p)` instead of match-all instances with equality constraints

In #17304, Richard and Simon dicovered that using `-XFlexibleInstances`
for `Outputable` instances of AST data types means users can provide orphan
`Outputable` instances for passes other than `GhcPass`.

Type inference doesn't currently to suffer, and Richard gave an example
in #17304 that shows how rare a case would be where the slightly worse
type inference would matter.

So I went ahead with the refactoring, attempting to fix #17304.
22 jobs for master in 47 seconds (queued for 9 seconds)
Status Job ID Name Coverage
  Lint
passed #187708
lint
lint-linters

00:00:14

failed #187711
lint
lint-submods-branch

00:00:15

passed #187709
lint
lint-testsuite

00:00:15

passed #187710
lint
typecheck-testsuite

00:00:17

 
  Quick Build
skipped #187712
x86_64-linux
hadrian-ghc-in-ghci
 
  Build
skipped #187715
x86_64-linux
release-x86_64-linux-deb9-dwarf
skipped #187714
x86_64-linux
validate-x86_64-linux-deb9-debug
skipped #187713
x86_64-linux
validate-x86_64-linux-deb9-hadrian
 
  Full Build
skipped #187717
aarch64-linux allowed to fail
validate-aarch64-linux-deb9
skipped #187718
armv7-linux allowed to fail
validate-armv7-linux-deb9
skipped #187719
x86_64-linux
validate-i386-linux-deb9
skipped #187716
x86_64-darwin
validate-x86_64-darwin
skipped #187720
x86_64-linux
validate-x86_64-linux-deb9-integer-simple
skipped #187721
x86_64-linux
validate-x86_64-linux-deb9-unreg
skipped #187722
x86_64-linux
validate-x86_64-linux-fedora27
skipped #187724
x86_64-windows allowed to fail
validate-x86_64-windows
skipped #187723
x86_64-windows allowed to fail
validate-x86_64-windows-hadrian
 
  Cleanup
passed #187725
x86_64-darwin
cleanup-darwin

00:00:06

 
  Packaging
skipped #187726
x86_64-linux allowed to fail
doc-tarball
 
  Testing
skipped #187727
x86_64-linux allowed to fail manual
hackage
skipped #187728
x86_64-linux
perf-nofib
 
  Deploy
skipped #187729
x86_64-linux allowed to fail
pages
 
Name Stage Failure
failed
lint-submods-branch Lint
Fetching origin
Entering 'utils/haddock'
Fetching origin
Entering 'utils/hsc2hs'
Fetching origin
$ submodchecker .git $(git rev-list $CI_COMMIT_BEFORE_SHA..$CI_COMMIT_SHA)
Submodule update(s) detected in e951f219597a3e8209abd62f85c717865f7445ca:
*FAIL* commit message does not contain magic 'submodule' word
ERROR: Job failed: exit code 1