Rewrite

I rewrote the module to be a bit more stable. Also the way connections are handshaked are changed a bit to avoid duplicate connections between the same peers.

Now its always to peer with the lexicographical lowest id that is the initiator of the connection.
Assuming to peers `a` and `b`

1. If `a` wants to connect to `b` he sends `a` and expects `b` to reply with `b`.
2. If `b` wants to connect to `a` he sends `b` to `a` and expects `a` to follow 1.

This way `a` can close the duplicate connection so he knows that he is always the initiator.

I've also added a full readme (assuming the license is MIT)