This PR adds a warning when a multipath descriptor causes a non-multipath key to be cloned across multiple branches.
For example, a descriptor such as:
wsh(multi(2,A/<0;1>/,B/0/))
currently reuses the same B/0/* key material across the generated branches.
The existing behavior is kept: these descriptors remain valid and are not rejected. The change only exposes a warning through getdescriptorinfo.
The warning is only triggered when a key provider is actually cloned to match a multipath expression. Cloning subdescriptors in tr() does not trigger the warning.
Tests:
- Added descriptor unit tests covering multipath key cloning.
- Added coverage for tr() internal-key vs subdescriptor cloning.
- Added a functional test for the getdescriptorinfo warning.
- Ran the descriptor unit tests and rpc_getdescriptorinfo.py successfully.
Fixes #35985