net-io

(after #442)

This PR changes net to use `io` instead of channels.
At the moment it's just `conn`, but soon more.
yeah agreed with many points here. It's bad atm. I like what you described before/elsewhere:

```Go
p1, p2 := .... // peer.Peer
mn := mocknet.New()
pn1 := mn.AddPeer(p1)  // returns mocknet.Network interface type
pn2 := mn.AddPeer(p2)

pn1.Dial(p2) // calls: link := mn.Connect(pn1, pn2)

mn.SetLatency(...)  // could set options on mn globally

links := mn.Links(p1, p2)
links[0].SetLatency()  // or per link
```