run: the next generation

This defines and implements (client/server) a new Run interface with the following features:

* I/O streams are io.Readers (stdin - not implemented yet) and io.WriteClosers (stdout/stderr).
* Run and Attach return a Process which implements `.Wait() -> (int, error)`.

These are much more Go-like and useful than a channel streaming everything over it.

Stdin support is not implemented at all yet, but this paves the way for it.