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)
`_pipe` is a thin wrapper around `CreatePipe`. It is nothing more than the CRT synonym for `CreatePipe`. If you don't want to call CRT functions like `malloc` and `_pipe`, then you can alter the code to call `HeapAlloc` and `CreatePipe`. Removing support for dynamic memory allocation / anonymous pipes as portable features would make no sense at all.

I don't feel like getting in to the named pipe / unix socket issues at all because it's not possible to have a rational conversation with you.