Null-terminate domain names at the protocol level

This is because the domain frame is used as a zmq pubsub key
and pubsub uses a prefix match. We don't want a subscriber for
"foo" to get messages for "foobar" (which it ordinarily would) so
we turn it into "foo\0" which is no longer a prefix of "foobar\0".