Add blockmanager.current with extra checks for whether we are up to date.

This uses peer state to confirm if we are up to date, as well as what
chain thinks.
Peer: use QueueMessage instead of directly using the channel.
Make it possible to get a notification when a message has been sent.

If a channel is passed in then true will be sent on the provided channel
after the message has successfully sent.
Remove stale comment.
Remove prevGetBlocksMutex.

This is only ever accessed from one place (blockmanager) which is single
threaded.
Add an idle timer for peers.

If we don't hear from a peer for 5 minutes, we disconnect them. To keep
traffic flowing we send a ping every 2 minutes if we have not send any
other message that should get a reply.