A user reported on stackexchange that they were unable to sign for a multi_a script using a wallet that only had the corresponding keys (i.e. it did not have the multi_a() descriptor). This PR fixes this issue.
Additionally, wallet_taproot.py is modified to test for this scenario by having another wallet in do_test_psbt which contains descriptors that only have the keys involved in the descriptor being tested. wallet_taproot.py was also modified to create new wallets for each test case rather than sharing wallets throughout as the sharing could result in the signing wallet having the keys in a different descriptor and accidentally result in failing to detect a test failure.
The changes to the test also revealed a similar issue with rawtr() descriptors, which has also been fixed by checking if a descriptor can produce a SigningProvider for the Taproot output pubkey.