Fix reading message data; remove debug prints

We can't treat the data from libzmq as a C string, as it is not
guaranteed to have a null byte at the end. Instead, we need to read
zmq_msg_size() bytes into a buffer and decode that.

This fixes the existing tests.