Fix Issue #51

We make all ByteString wrappers keep track of the number of bytes yielded, so ByteString.length does not need to be called and the whole string does notneed to be traversed.