This adds a simple light client mode (RPC only, no wallet support).
With this PR, It is possible to disable auto-request-blocks by passing in -autorequestblocks=0
.
In that mode, one can request out-of-band blocks by calling requestblock add ["<blockhash>", ...]
.
Those blocks will then be requested/downloaded and can be loaded via getblock
(and they will also be passed through ZMQ).
This allows a very simple light-client mode ideally when you already have a validated peer in your trusted network.
This is also a reviewable step towards light client mode for the wallet (which will ultimately allow process separation o the wallet).