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)
> My guess would be to keep code, that doesn't expect such file systems, running?

Applications don't change behaviour based on the file system they're writing too. DAC / MAC permissions aren't an application-level security mechanism. There would be no way to write code that used `chmod` and didn't break when using a file system like FAT32 if the file system reported errors. DAC (POSIX permissions) places a certain level of trust in users on the system - they are responsible for getting it right. MAC has different semantics and the sysadmin / distribution / applications are responsible for getting it right rather than the user.