Don't request blocks when block invs received unless it's the syncnode, or we've CaughtUp()
Force selection of a new syncnode since the current syncnode is about to stop sending blocks.
Replacement stalled block logic. Depending on the situation, it will either disconnect
the peer (as previous behaviour), or it will reselect a syncnode (e.g. when 500 blocks
have been received from the syncnode).
Add commandline option for sync timeout
Rename MarkBlockAsReceived to MarkBlockAsRequested to reduce confusion.
Show downloaded block size and time taken to download.
Debug when a block is incoming and show how many blocks still to come.
Show count/info of block invs received.

Conflicts:

	src/main.cpp
Improved getblocks logging.
Improve getblocks (reception) logging
Add net2 debug option
Better logging of ProcessMessages() progress (needs "net2")
Correct logic so that not both lines are displayed

e.g.:-
2014-02-25 06:56:39 received getdata (1 invsz)
2014-02-25 06:56:39 received getdata for: tx 8e2e08d1d851eb1ac800e814796dd7b86fd6d3a8fad41d5bdcb873ac6f4aba8d
Increase max outbound connections from 8 to 128.
Max blocks in transit set to 16
Fix bug intoduced in #4378
Allow peers to determine how much they are seen to be misbehaving.

This can allow peers in future to modify their behaviour to avoid netsplits.
Allow nodes to send version messages more than once.
Antisocial (needs CaughtUp)
Only update last seen time when the node is actually being useful.