This is a backport of core#20833 [11 / 13]
https://github.com/bitcoin/bitcoin/pull/20833/commits/c4259f4b7ee23ef6e0ec82c5d5b9dfa9cadd5bed
Notes:
- I used the `FromHex` and `ToHex` helper functions when serializing / deserializing transactions
- all occurences of `CTransaction.rehash()` have been changed into `CTransaction.get_id()`, as there was no point in recomputing the txid without change to the transaction
- test_rbf has been deleted for obvious reasons
- in `test_independant`, one of the tests differs from the source material because we do not test the missing inputs first in all transactions and abort early without checking any signature, we need to check the signatures for all transactions until we find an invalid transaction, so we can validate all previous transactions until the first bad tx is met in the package (see D12123).
- in `test_multiple_children` I had to fix a call to `self.chain_transaction` in which the source material mistakenly passed the `child_value` instead of the parent `value` when building Child A.
Depends on D12125