Must signal end separately.

Can’t use available bytes to indicate end because it’s possible that only SOME
of the bytes will be read before the reader is refilled (e.g., in the case of a
fixed-sized record reader where the read buffer size is not a multiple of the
fixed record size).