This PR Implements the following:
- If creating a v3 transaction, AvailableCoinsdoesn’t return unconfirmed v2 utxos (and vice versa)
- AvailableCoinsdoesn’t return an unconfirmed v3 utxo if its transaction already has a child
- If a v3 transaction is kicked out of the mempool by a sibling, mark the sibling as a mempool conflict
- Throw an error if pre-selected inputs are of the wrong transaction version
- Allow setting version to 3 manually in createrawtransaction(uses commits from #31936)
- Limits a v3 transaction weight in coin selection
Closes #31348
To-Do:
- Test a v3 sibling conflict kicking out one of our transactions from the mempool
- Implement separate size limit for TRUC children
- Test that we can’t fund a v2 transaction when everything is v3 unconfirmed
- Test a v3 sibling conflict being removed from the mempool
- Test limiting v3 transaction weight in coin selection
- Simplify tests
- Add documentation
- Test that user-input max weight is not overwritten by truc max weight
-  Test v3 in RPCs other than createrawtransaction