Add new chain_server and chain_downloader classes

These new classes are the beginning of the implementation of a
faster chain downloading system, which will download large segments
of blockchain from a server quickly, in order to catch the client
up with the network faster when his local chain is significantly
outdated.
Document the protocol
Add protocol version and some logging
Refactor, restructure and debug chain_downloader and chain_server

It actually works now!
Bugfixes in chain_server

The config was not being saved correctly due to missing reflectors.
Also, the server was not sending the client the first block due to an
off-by-one error.
Defer connecting to the p2p network until chain_downloader finishes

Is it safe to do this? @emfrias, any idea? It seems to work right...
Merge branch 'develop' into chain_server
Turn default log level back down to warn
Add ulog when chain_downloader finishes getting blocks
Add checkpoints

Now the delegate signature will not be verified for blocks prior to the
highest checkpointed block.
Merge remote-tracking branch 'origin/develop' into chain_server
Resolve #610
Merge branch 'develop' of github.com:BitShares/bitshares_toolkit into develop
blockchain_get_feeds_for_asset test
blockchain_get_feeds_for_asset test
Merge branch 'develop' into chain_server

Conflicts:
	libraries/client/client.cpp
fix where short position is delivered to
Update submodules
Fix wallet::to_pretty_trx
clean up market order matching and transaction history