Record timings of block download process
Fix many orphan problem. Don't getblocks following orphan reception. (Needs CaughtUp())
Don't getdata blocks if an inv is received that wasn't requested (getblocks).

Also, show invs being received (and indicate whether we have the block or not).
Better logging of ProcessMessages() progress
Show downloaded block size and time taken to download.
Attempt to reselect a SyncNode when blocks aren't arriving.
Allow nodes to send version messages more than once.
Display unknown commands received.
Report ping times at they arrive.
Antisocial (needs CaughtUp)
Add speed metric to CNode for better SyncNode selection
No need to reset tBlockInvs
Display count of blocks (and new) arriving when not requesting them.
Only disconnect a node (when changing syncnode) if it has blocks in flight.
indentation
Rename MarkBlockAsReceived to MarkBlockAsRequested to reduce confusion.