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)
You placed this comment on a statement referring to `std::io::net::pipe`, which is why I thought you were talking about unix domain sockets and named pipes.

As I have explained [here](https://github.com/rust-lang/rfcs/pull/517#discussion_r21791136) and [here](https://github.com/rust-lang/rfcs/pull/517#discussion_r21779208), we are not declaring that anonymous pipes are not a cross-platform abstraction. The implementation is not satisfactory due to its reliance on `_pipe`, and as such it is becoming a unix-specific operation for now. It should be quite easy, however, to implement it for windows and promote the API to `std::io`. The comment I linked to above explains this vision for migration over time.