Fixed potential issue with not filling up each ByteBuffer before moving on to the next ByteBuffer in implementation of read(ByteBuffer[], int, int). Cleaned up logic a bit, too, for redundancy's sake.