The main part of this change is to read data from the network directly into the "carry over buffer" instead of reading it onto a stack variable and copying it to that buffer.
It also includes a change that makes partial frames available to FMSLogo programs sooner. This makes it easier to implement an HTTP server, since HTTP clients typically don't send requests with a NUL framing byte nor do they close the socket until after they hear back from the server.
Finally, it includes a comment as to why partial frames are make available so that I don't unwittingly remove this functionality in the future (as I came close to doing in this change).