Previously, there were no arguments after `memo`, so it could always just be
omitted. Now the `privacyPolicy` is there, so it’s necessary to be able to
explicitly omit the memo.
Using `"F6"` would work in some situations, but while it encodes the “no memo”
case, the internal checks that ensure we don’t try to send a memo to transparent
recipients fail on it. And as we can’t merge to a taddr without specifying
`"AllowRevealedRecipients"`, this prevents merging to taddrs (unless the
deprecated `legacy_privacy` feature is enabled).
This change makes it possible to send `null` as the `memo` argument, which
indicates “no memo” successfully. It does the same for `*_limit` parameters in
`z_mergetoaddress` and `z_shieldcoinbase` (even though those don’t have a
similar failure case), since those parameters also need to be specified when the
`privacyPolicy` is, and it’s consistent with #6599, rather than hardcoding some
particular value.
This also fixes a bug in `WalletTxBuilder` that could inadvertently require
`AllowRevealedAmounts` on a transaction from a shielded pool to itself (via
`NetAmountRecipient`).
The p2p_nu_peer_management and rewind_index RPC tests still start from
Sprout, because they are explicitly (and only) testing network behaviour
across network upgrades.
The mempool_tx_input_limit test is removed because the flag has been
ignored since Sapling activation, and will be removed at some point in
the near future.