Replace a magic number by Peer.TIMEOUT
Expose the Peer constructor
Fix Peer#willConnect
Fix disconnected event
Peers#in.notConnected now excludes peers that will connect
Always check if the peer referenced in messages exists
Split objects into their own files/modules
Add test for the client