Per-peer block download tracking and stalled download detection.

Keep track of which block is being requested (and to be requested) from
each peer, and limit the number of blocks in-flight per peer. In addition,
detect stalled downloads, and disconnect if they persist for too long.

This means blocks are never requested twice, and should eliminate duplicate
downloads during synchronization.
Add progress to initial display of latest block downloaded.
Antisocial upgrade
fixup Antisocial
Merge remote-tracking branch 'sipa/headersfirst4'

Conflicts:
	src/main.cpp