RFC: io and os reform

This RFC proposes a significant redesign of the `std::io` and `std::os` modules
in preparation for API stabilization. The specific problems addressed by the
redesign are given in the Problems section below, and the key ideas of the
design are given in Vision for IO.

[Rendered](https://github.com/aturon/rfcs/blob/io-os-reform/text/0000-io-os-reform.md)
@aturon: The current design is not "Unix-biased". There are filesystems with support for the POSIX permission bits, filesystems with support for ACLs and more complex platform-specific MAC systems using labels.

The POSIX permission system is a property of the filesystem, not the OS. Setting POSIX permissions on FAT32 is a no-op on Linux *just as it is a no-op on Windows*. There is nothing biased or non-portable about it.

Removing useful portability functionality is *reducing* support for Windows by forcing software to call into a platform-specific API. It is going to reduce the number of Rust projects with Windows support... it makes very little sense.