Large reorgnization of rt::io::file

The goal of this reorganization is to finalize the interface into rt::io::file. The idea is to have this be the "pretty much final" interface, with room for only minor tweaks later on down the road.

More information can be found in the commits, but the major bonus of this pull is destroying all thread-blocking functions in `std::os` and moving a lot of code in preparation for making a native I/O factory (still to come later).