Show nodeid instead of addresses (for anonymity) unless otherwise requested.
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
Implement antisocial feature - just request blocks and ask that transactions info not be sent.
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.
NodeID (for parallel block download)
Display blocks received without needing debug=net
Don't need debug=net to display some debug lines.
Sometimes nodes send many duplicate blocks. This patch disconnects the peer that's running
behind. This shouldn't happen, but it can and does sometimes, so this code caters for that.

This code also becomes more important as the block download algorithm is changed in future,
such as concurrent block downloads from multiple peers, and retries are sent to other peers
when peers seem unresponsive, only to become responsive again later, by which time
they are sending duplicate blocks.