Add locking to ensure thread-safety. Fix #44

I used a simple lock in `Client.send`. I'm not a big fan of locks, but it works like a charm and I don't see how we could do better.

If performances matter, we could use several sockets with a lock for each and select a random one in `Client.send`. But I'll keep that for another time.

Maybe we could have add simple test for that ?