net-io

(after #442)

This PR changes net to use `io` instead of channels.
At the moment it's just `conn`, but soon more.
And it would make it possible to create golangtests that execute non-trivial scenarios using both bitswap and the dht.

It would be possible to see precisely what happens when there's a large network of nodes sharing information using arbitrary routing and exchange services (that run on the inet.Network).