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)
It's yet another trait without a use case in the real world. It's another piece in the incomprehensible puzzle that is the design of the standard library. Rust is doing even more over-engineering and premature abstraction than big Java frameworks like Spring.

Third party libraries are not going to care about supporting this fantasy concurrency model anyway, and without the compiler inserting yields green threads are never going to work with them. I don't understand the rationale behind crippling Rust's synchronization and I/O primitives for this when a single loop or recursive function is just as bad. If you're using green threads, you'll already have to do *everything* yourself.