This makes the Transaction class use TxInput everywhere internally, except for a few remaining methods that work with `fetched_inputs` which still need to be converted.
Input setters and their callsites are also converted:
- `Transaction.add_inputs`
- `Transaction.set_inputs`
- `Transaction.update_input`
- `Transaction.from_io`
Another optional attribute has to be added to the TxInput class to work with hardware wallets: prev_tx. This is a weirdness in the hardware wallet libraries API, probably related to BTC.