This PR introduces a simple NodeSigner wallet replacement class that delegates signing to a specified node via the signrawtransactionwithkey RPC. Note that this is fundamentally different to MiniWallet, as it allows spending standard output types (P2PKH, P2WPKH, P2SH-P2WPKH, P2TR) and operates on already existing raw transactions, rather than allowing to create them from scratch (though support for that could still be added later).
A NodeSigner instance is plugged into the taproot functional test (feature_taproot.py) in order to allow running without having the Bitcoin Core wallet compiled. This was done with the intention to change the nature of this functional test as little as possible, as it seems that the variety of additional (pre-taproot) output script types and a rather sophisticated scheme for deriving amounts (including change) is desired -- if this is not considered relevant, a more invasive replacement using MiniWallet might also be a possible alternative.