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)
It makes no sense for throwing an exception to print to a stream on the runtime's own accord. It should either be handled by the parent (where printing can be done) or bring down the process. Ignoring exceptions is a recipe for disaster and this is clearly a bad design. The workaround of being able to set a different stream is not an acceptable "fix" for the problems.