Fix protocol mis-read with utf8 (issue #8)

This addresses the issue I observed where multi-byte utf8 data in the JSON payload would cause the parser to get into a bad state

By reading the stream as utf8, but then splitting it using byte-lengths via Buffer, we keep the data as intended but read the correct length off the wire, and avoid short or long reads