net-io

(after #442)

This PR changes net to use `io` instead of channels.
At the moment it's just `conn`, but soon more.
This has been leaking goroutines. What timeout behavior does `Swarm.Dial` stipulate in its contract?