1ac16094

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

Mutation-test Centjes.Report.Balance

Opt Centjes.Report.Balance into mutation testing (remove its
DisableMutations annotation) and cover every mutation:

* lastEntryState: use the transaction's own cumulative balance/price
  graph directly instead of looking up the last posting (they are equal
  for a non-empty transaction, so the lookup only added an equivalent,
  unkillable mutant and a partial 'V.last'); extract the with/without-
  virtual choice into 'selectVirtual' so it can be tested directly.
* Validity (BalanceReport): combine the checks with '<>' instead of
  'mconcat [..]' so there is no list-literal mutant; test rejection of a
  total/balances mismatch.
* Tests: selectVirtual, the total-mismatch validity case, and a
  price-terminated ledger fixture exercising lastEntryState's price branch.
* mutation.yaml: skip ConstEmptyList on String literals (description text).
* Disable the ConstEmptyList mutant on the unreachable balance-sum-overflow
  error path.