Clean up processing of TCP data

Prevent the case where multiple messages are chunked together without being processed (occasionally leading to the buffer growing too large and the client being kicked).

Stop clients from being able to send messages solely consisting of strings.