This also changes the uiInterface.LoadWallet signal argument type from
shared_ptr<CWallet> to unique_ptr<interfaces::Wallet> because CWallet is an
internal wallet class that shouldn't be used in non-wallet code (and also can't
be passed across process boundaries).
This commit does not change behavior.
---
Depends on D5867
This is a partial backport of Core [[https://github.com/bitcoin/bitcoin/pull/15288 | PR15288]]