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)
prevent Windows redefinition warning cause by compat.h
Merge pull request #3321

0078841 prevent Windows redefinition warning cause by compat.h (Philip Kaufmann)
Merge pull request #15 from bitcoin/master

Upgrading from Bitcoin