RFC: IO simplification

This RFC proposes a significant simplification to the I/O stack distributed with
Rust. It proposes to move green threading into an external Cargo package, and
instead weld `std::io` directly to the native threading model.

The `std::io` module will remain completely cross-platform.

[Rendered](https://github.com/aturon/rfcs/blob/io-simplification/active/0000-io-simplification.md)
Green threads are fundamentally broken in this sense. If the compiler doesn't insert yields in function preludes and loop edges, it is incredibly easy to block the green thread schedulers. Since there are no plans to do that in the compiler, it is never going to be anything but a toy unsuitable for reliable software. You can't just spin up unknown numbers of threads dynamically in an attempt to cope.