Replace the std::deque with boost::deque in the p2p code (visual c++'s deque has horrible performance)
Add mutex to the list of peers we're delaying deletion of (needed in case they yield in their destructors)
Add assertions to verify message_oriented_connection & peer_connection are running in the correct thread