IO#read_nonblock and readpartial.

Still work to be done to make these work reasonably against non-
file, non-selectable channels.
Implement Kernel#p, start adding errno and nonblock logic.