Split up bitcoinrpc (code movement only)

Split bitcoinrpc up into

- rpcserver: bitcoind RPC server
- rpcclient: bitcoin-cli RPC client
- rpcprotocol: shared common HTTP/JSON-RPC protocol code

One step towards making bitcoin-cli independent from the rest
of the code, and thus a smaller executable that doesn't have to
be linked against leveldb.

This commit only does code movement, there are no functional changes.
Merge pull request #3284

fb78cc2 Split up bitcoinrpc (code movement only) (Wladimir J. van der Laan)