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)
I don't like this section at all. Endianness conversions are absolutely necessary when working with cross-platform low-level protocols and serialization formats. Removing this entirely without an immediately available replacement is *very* bad. A lot of serialization crates will be broken without ability to fix it (except manual endianness conversions). What, for example, libraries like [this one](https://github.com/TyOverby/bincode) should do?

This functionality *should not* be removed without providing an alternative first.