Modular wallet backends

Remove all #ifdef ENABLE_WALLETS and replace them by calls
to a wallet backend.

Wallet backends can register their own RPC calls, as well
as provide information that will be shown in the getinfo,
getmininginfo calls.

The current reference client wallet is currently the only wallet backend,
but this could change. For one, I'm working on a simple watch-only
wallet backend.