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)
Yes we were thinking that the code you listed would be the replacement for a bare `read_line`. In general we're trying to move as much functionality to iterators as possible, and we could possibly add some form of method on an iterator which peels off the first element, failing if it's `None` if this becomes too unergonomic.

The current implementation for `chars()` doesn't actually use buffering at all, it just peeks at a byte and then might read some more bytes. We thought that if we're exposing `bytes()` on `Reader` which is not speedy unless buffered, then we may as well expose `chars()` as well.