Remove all unnecessary dependencies for bitcoin-cli

This pull removes all the unnecessary dependencies (key, core, netbase, protocol, ...) of bitcoin-cli.

To do this:
- Shards the chain parameters into BaseParams, which contains just the RPC port and data directory (as used by `util` and `bitcoin-cli`) and Params, with the rest.
- The network time-offset-mangement functions from util.cpp are moved to `timedata.(cpp|h)`. This breaks the dependency of util on netbase.
- To avoid potential confusing scenarios, CChainParams does no longer assume the main chain by default. A chain must explicitly be set with SelectParams / SelectParamsFromCommandLine (or the Base counterpart). In practice this changes nothing, except in the tests.