Dialer and ucat

This PR:
- implements a `Dialer` interface (for specifying `LocalAddr` and `Timeout`) in `net` pkg style.
- implements a `ucat` utility to test sending lots of data.

ucat starts choking/slowing down after ~60MB. It's most likely in the protocol, as ucat is only doing: 
```Go
io.Copy(os.Stdout, conn)
io.Copy(conn, os.Stdin)
```
(parallelized) in the critical path.

You can try piping 1GB over `ucat` by running `make test` in the `ucat/` directory.