Fixed problems in message logic.

Requests no longer keep track of their time (this will be handled by pipelining, stay tuned).

Peers keep track of which blocks we want to download from them (no longer have to keep track of this in interestedQueue, which was super messy).

Now remove blocks from missing as soon as we determine which peer we want to download them from (only download a block from 1 peer at a time).