9505a018

Check with weeder that the whole library is tested

Stacked on #76.

Adds a `weeder-check` with `includeTests = true`, so the test suites count as
users: the libraries have no roots of their own, which makes the check assert
that the whole library is reached by a test rather than merely that nothing is
unused.  `Autodocodec.Usage` is rooted, declarations and instances both -- it
is a corpus of example types for readers and for the tests rather than code
that has to be used.

It reported 89 weeds.  The rest of the commits are what it took to get to zero,
and two of them are bug fixes it led to:

* `optionalFieldOrNullWithOmittedDefault` and its three siblings documented
  that they omit the key when the value is the default, but answered the
  underlying codec with `Nothing` for exactly that case -- and that codec omits
  the key when what it is given equals its own default, `Just defaultValue`.
  So the one value that should have been omitted was the one that got written,
  as null.  Nothing in the repository used these combinators, which is why no
  test said so.
* `unsafeUnboundedNaturalCodec` threw an arithmetic underflow on a negative
  number: `floatingOrInteger` reaches its result type through `fromInteger`,
  which throws for `Natural`.  A pure exception out of a parser, on input a
  parser exists to reject.

Also: the unused `Result` newtype is removed, and `ExactParseErrorMessage` is
now exported (`ExactParseError` already exposed a field of that type, so a
parse error could only be pretty-printed, never inspected).

`nix flake check` passes, with 1671 tests.

### Worth a look during review

`Result` was reachable through `Autodocodec`, which re-exports
`module Autodocodec.Codec` wholesale, so removing it is technically breaking.
Its own comment says it was never meant to be public.  No version was bumped,
so nothing releases until you decide.
PR #77

Total

3m06s

Created Started Finished

Time to Start Worker time Duration Time to finish Idle
Config 2m20s 1s 1s 2m21s 2m20s
Eval 4m24s 1m03s 1m03s 5m27s 2m02s
Build - - - - -
Suite 2m20s 1m04s 3m06s 5m27s 4m23s

Timeline

Config Eval Failed Compressed gap
0s4m30s4m40s4m50s5m5m10s5m20s