kgio_read and kgio_tryread will now return an empty string when
a length of zero is specified instead of nil (which would signal
an EOF). This emulates the behavior of IO#read, IO#readpartial,
IO#sysread, IO#read_nonblock in core Ruby for consistency.