RFC: io and os reform

This RFC proposes a significant redesign of the `std::io` and `std::os` modules
in preparation for API stabilization. The specific problems addressed by the
redesign are given in the Problems section below, and the key ideas of the
design are given in Vision for IO.

[Rendered](https://github.com/aturon/rfcs/blob/io-os-reform/text/0000-io-os-reform.md)
@thestinger 

If you *really* don't care about performance, you could create a new process with 3 threads: 2 that read and write, and 1 that reads from a pipe and exits the process when it receives a command to exit (you can also proxy signals through that pipe). This is *very* ugly and rather slow, but technically it doesn't leak.
I certainly want non-blocking IO. Unfortunately, it is very non-standard (and