Introduce wrappers around CBitcoinAddress
Summary:
This patch removes the need for the intermediary Base58 type
CBitcoinAddress, by providing {Encode,Decode,IsValid}Destination
function that directly operate on the conversion between strings
and CTxDestination.
This is a port of https://github.com/bitcoin/bitcoin/pull/11117
Depends on D539
Test Plan: make check, rpc tests, manual QT testing
Reviewers: #bitcoin_abc, deadalnix
Reviewed By: #bitcoin_abc, deadalnix
Subscribers: deadalnix
Differential Revision: https://reviews.bitcoinabc.org/D540