Skip type family defaults with hs-boot and hsig files

Works around #17190, possible resolution for #17224. New design is is
according to accepted [GHC Propoal 320].

Instances in signatures currently unconditionally opt into associated
family defaults if no explicit instance is given. This is bad for two
reasons:

  1. It constrains possible instantiations to use the default, rather
  than possibly define the associated family differently.

  2. It breaks compilation as type families are unsupported in
  signatures.

This PR simply turns off the filling in of defaults in those cases.
Additionally, it squelches a missing definition warning for hs-boot too
that was only squelched for hsig before.

The downsides are:

  1. There is no way to opt into the default, other than copying its
  definition.

  2. If we fixed type classes in signatures, and wanted instances to
  have to explicitly *out of* rather than into the default, that would
  now be a breaking change.

The change that is most unambiguously goood is harmonizing the warning
squelching between hs-boot or hsig. Maybe they should have the warning
(opt out of default) maybe they shouldn't (opt in to default), but
surely it should be the same for both.

Add hs-boot version of a backpack test regarding class-specified
defaults in instances that appear in an hs-boot file.

The metrics increase is very slight and makes no sense --- at least no
one has figured anything out after this languishing for a while, so I'm
just going to accept it.

Metric Increase:
  T10421a

[GHC proposal 320]: https://github.com/ghc-proposals/ghc-proposals/pull/320
24 jobs for master in 318 minutes and 36 seconds (queued for 4 seconds)
Status Job ID Name Coverage
  Tool Lint
passed #475440
lint
lint-linters

00:03:42

failed #475443
lint allowed to fail
lint-submods

00:00:13

passed #475444
lint
lint-submods-branch

00:00:23

passed #475441
lint
lint-testsuite

00:01:19

passed #475442
lint
typecheck-testsuite

00:01:23

 
  Quick Build
passed #475445
x86_64-linux
hadrian-ghc-in-ghci

00:08:46

 
  Lint
passed #475446
lint
lint-base

00:17:50

 
  Build
passed #475447
x86_64-linux
stack-hadrian-build

00:06:43

passed #475448
x86_64-linux
validate-x86_64-linux-deb9-hadrian

00:49:12

 
  Full Build
failed #475451
aarch64-linux allowed to fail
validate-aarch64-linux-deb10

00:24:57

failed #475452
armv7-linux allowed to fail
validate-armv7-linux-deb10

00:21:01

passed #475453
x86_64-linux
validate-i386-linux-deb9

00:51:33

passed #475450
x86_64-darwin
validate-x86_64-darwin

01:10:14

passed #475454
x86_64-linux
validate-x86_64-linux-deb9-debug

00:59:43

passed #475456
x86_64-linux
validate-x86_64-linux-deb9-dwarf

01:03:19

passed #475455
x86_64-linux
validate-x86_64-linux-deb9-integer-simple

01:38:11

passed #475449
x86_64-linux
validate-x86_64-linux-deb9-unreg-hadrian

01:37:43

passed #475457
x86_64-linux
validate-x86_64-linux-fedora27

01:51:44

passed #475458
new-x86_64-windows test
validate-x86_64-windows-hadrian

03:38:30

 
  Packaging
failed #475459
x86_64-linux allowed to fail
doc-tarball

00:02:13

 
  Testing
manual #475460
x86_64-linux allowed to fail manual
hackage
passed #475462
x86_64-linux-perf
perf

00:07:19

passed #475461
x86_64-linux
perf-nofib

00:36:09

 
  Deploy
failed #475463
x86_64-linux
pages

00:04:13

 
Name Stage Failure
failed
validate-armv7-linux-deb10 Full Build
Uploading artifacts...
WARNING: ghc-armv7-linux-deb10.tar.xz: no matching files
WARNING: junit.xml: no matching files
WARNING: performance-metrics.tsv: no matching files
ERROR: No files to upload
Uploading artifacts...
WARNING: junit.xml: no matching files
ERROR: No files to upload
ERROR: Job failed: exit code 1
failed
validate-aarch64-linux-deb10 Full Build
Uploading artifacts...
WARNING: ghc-aarch64-linux-deb10.tar.xz: no matching files
WARNING: junit.xml: no matching files
WARNING: performance-metrics.tsv: no matching files
ERROR: No files to upload
Uploading artifacts...
WARNING: junit.xml: no matching files
ERROR: No files to upload
ERROR: Job failed: exit code 1
failed
doc-tarball Packaging
+ cd ..
+ '[' 0 -eq 0 ']'
+ rm -r linux
+ tar -Jxf /builds/ghc/ghc/ghc-x86_64-unknown-mingw32.tar.xz
+ mv ghc-9.1.0.20201018-x86_64-unknown-mingw32 windows
+ cd inst/share/doc/ghc-9.1.0.20201018/html/libraries
+ mv '../../../../../../windows/doc/html/libraries/Win32-*' .
mv: cannot stat '../../../../../../windows/doc/html/libraries/Win32-*': No such file or directory
ERROR: Job failed: exit code 1
failed
pages Deploy
Entering 'nofib'
Entering 'utils/haddock'
Entering 'utils/hsc2hs'
Executing "step_script" stage of the job script
$ mkdir -p public/doc
$ tar -xf haddock.html.tar.xz -C public/doc
tar: haddock.html.tar.xz: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
ERROR: Job failed: exit code 1
failed
lint-submods Tool Lint
Entering 'libraries/unix'
Entering 'libraries/xhtml'
Entering 'nofib'
Entering 'utils/haddock'
Entering 'utils/hsc2hs'
Authenticating with credentials from job payload (GitLab Registry)
$ git fetch "$CI_MERGE_REQUEST_PROJECT_URL" $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
fatal: no path specified; see 'git help pull' for valid url syntax
ERROR: Job failed: exit code 1