Instead of abusing SocketChannel.read in a tight loop, use a Selector
to tell us when a peer incoming channel is ready to read.

This fixes excessive CPU usage when running a peer over a slow
link. In that case, an IncomingThread would spend >90% of its time
repeatedly calling SocketChannel.read. Observed CPU use was in excess
of 350% on a quad-core MacBook Air.
Fixing email address of contributor in README

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
Code style fixes

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>