Add CaughtUp() function (needed by later commits)
Don't request blocks when block invs received unless it's the syncnode, or we've CaughtUp()
Update timings when block reception occuring.
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
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).
Rename MarkBlockAsReceived to MarkBlockAsRequested to reduce confusion.
Force selection of a new syncnode since the current syncnode is about to stop sending blocks.
Show downloaded block size and time taken to download.
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
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.