c17d43f3

By: Tom Sydney Kerckhove <syd@cs-syd.eu>

Update sydtest and keep the mutation check passing on the new engine

The upgraded sydtest mutation engine adds the SwitchFunctionArguments,
RemoveClause, ElideCall and TupleSwap operators (plus control-group
mutations). Cover the genuinely-killable new mutants with tests and mark the
equivalent ones with DisableMutation annotations:

* Strengthen the wrapper specs (AmountOf/AccountOf/ConversionRateOf) and the
  Multi*, Account, Amount, ConversionRate and DecimalLiteral specs so the new
  mutants no longer slip through the `Nothing`-guarded branches.
* Annotate the equivalent mutants (commutative add/compose swaps, redundant
  optimisation clauses, the fromDouble exponent short-circuit, symmetric
  sign-routing tuple swaps in rate/multiply, the empty-string sign, S.insert
  in the repetend check, and uncoverable diagnostic messages), each with a
  rationale.

Where a mutant marked genuinely redundant or dead code rather than an
intentional optimisation or safety guard, simplify the code instead of
annotating it (behaviour-preserving, and the freed-up mutants are now killed
by the existing tests):

* Account.distribute: drop the no-op `abs` on the `Word16` chunk count and
  collapse the unreachable zero-account branches.
* Amount.fraction: drop the redundant zero-fraction clause (the `Amount 0`
  clause stays, as it guards the `0 % 0` crash).
* DecimalLiteral.toRational/fromRatio: drop redundant always-Nothing/sign
  plumbing.

Bump really-safe-money to 0.0.0.1 and add a changelog.