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)
> I don't agree. I assume you're talking about coroutines or async/await? I think macros can help us evolve a good concise solution to this problem, just as they were used in JavaScript to prototype async/await. I could be wrong, but I think that shallow generators could be implemented today in terms of the existing semantics (with some unsafe code).

I think it would be very difficult to make a safe abstraction for this without compiler support. It might be impossible, but I don't know for sure.