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 think it's important that these kind of details are exposed - there are a few places where I am, for example, transmuting a custom structure into a `File` so that I can use custom file descriptors with it (I need to call `ioctl()` to set up some things for the file descriptor, but other than that it's identical to what `File` offers. The code would be significantly safer and more robust if the low level details were exposed (no risk of my structure not matching `File`'s for example.