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)
> @wycats I haven't done a lot of I/O programming using futures, but if this is indeed the case then I'd be happy to suggest Servo migrate over to that and we wouldn't need an I/O-ready libgreen at all :) (Though I/O isn't really relevant to this RFC, as libgreen I/O will be out of libstd anyhow.)

To be clear, futures are **one** strategy that can be used for common multiplexing patterns that is both ergonomic and efficient. Other patterns help close the remaining gap: Streams, for efficiently plugging in a reader/writer pair so that a single stack buffer can be shared and maybe shallow coroutines (generators) for high-performance cases where a full thread would be overkill.

In general, threads are fine for describing sequential operations, but they are an awkward way of describing almost any kind of concurrent IO.