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)
As [I explained](https://github.com/rust-lang/rfcs/pull/517#discussion_r21779208) the unsatisfactory portion is the reliance on `_pipe`. By switching to using `CreatePipe` we may discover a set of functionality that windows supports that unix doesn't which means we'll want some extension traits. Considering these APIs can happen at a later date, however, and we can migrate the implementation to `std::io` once implemented (it shouldn't be too hard!).

Our goal is to gradually cease reliance on msvcrt over time, not necessarily overnight. By not stabilizing the windows implementations of `std::io` which use it we're taking a step forward, but I'm sure there are plenty more!