Pass an error message back from CWallet::Verify(), and call InitError/InitWarning from WalletInit::Verify(). This means that we can call CWallet::Verify() independently from WalletInit and not have InitErrors printed to stdout. It also means that the error can be reported to the user if dynamic wallet load fails.
Partial backport of core PR10740 (commit 876eb64)
https://github.com/bitcoin/bitcoin/pull/10740/commits/876eb64680968c8fe2a28d1ecfd88a08d8967ead
Depends on D3632
Progress towards T459