switch to refcounted blobs and protocol tweaks

We will be sending a length followed by a blob, so structure
things so that this is easy, and at the same time switch to
refcounted blobs so we don't copy data to send it to multiple
listeners.