This PR adds a fuzz target for the TransactionCanBeBumped function. This function checks if a transaction can be bumped based on:
- Transaction has descendants in the wallet.
- Transaction has descendants in the mempool.
- Transaction has been mined.
- Transaction was already bumped.
- Transaction has inputs that are not mine.
This target will create scenarios to exercise all these cases. For the scenario (2), it has a mocked CTxMemPool that has a function to update the descendant state on mempool - this way we can speed up the target by avoiding to interacting with the mempool to really create descedants (e.g. creating blocks to trigger it).
Also, the CheckTransaction calls are to avoid UB on SetSpentKeyState - e.g. by calling it with a transaction without any output.