core: remove includes in .cpp, if header is already in .h

- example: if util.h includes stdint.h, remove it from util.cpp, as
  util.h is the first header included in util.cpp
Merge pull request #3257

379778b core: remove includes in .cpp, if header is already in .h (Philip Kaufmann)
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.