Refactor inventory request and response commands to be more reliable for initial block download.
Initial block download was quite slow and would often get stuck in seemingless endless loops of communications between peers. Communications are cleaned up to work more consistently from the requester's side (the node that is syncing). The responding node's (the node that is synced) messages remain the same. This means this update can be applied and syncing benefits will be had even if all nodes do not upgrade.
This pull request also adds a display of recently synced blocks to the progress bar.