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)
@thestinger Again, the use case was mentioned in both the RFC and my comment: building concurrency abstractions like channels, barriers, collections with blocking operations, phasers, etc -- all of these need the ability to manage blocking and signaling. The question is how they should interface to the scheduler to do so. One option sketched in this RFC is a java.util.concurrent-style interface, which has proved itself very successful (since j.u.c is one of the biggest libraries of scalable concurrency abstractions.) What more concrete API would you envision instead?