net-io

(after #442)

This PR changes net to use `io` instead of channels.
At the moment it's just `conn`, but soon more.
A bit strange to embed the `PeerConn` in the generic. It seems like this should be

``` go
type PeerConn interface {
  Conn
  ...
}
```