* rework the messageInputStream to implement read(byte[], off, len), and fix some fencepost bugs in the byte retrieval