Fix issue with receiving 0-length strings & framed transport.

When we request to read 0 bytes we would attempt to read a frame. If we're at the end of the message, this will never return.