Use bytes instead of str

Clarifies that str is the wrong datatype
for passing messages over ZeroMQ. This
distinction will be more important with
the eventual migration to Python 3.0,
but (I hope) this also helps clarify WHY
typecasting is performed before sending messages.

Change-Id: I4dd4661a5730a24ba7b514520b0429b721b05e9c
Only unpack replies on caller.

Opening the messages is unnecessary
in ZmqProxy, given that the msg_id
is already in the (zmq-specific)
message envelope. Additionally,
by not opening the messages, we
save a bit of complexity.

This avoids having to deserialize and
reserialize messages in ZmqProxy,
a necessary improvement for trusted-messaging
and should also have a markable performance
benefit.

Also cleans up msg_id handling a bit.

Change-Id: I31f365b9e1040503206b1d8320a0266a8121c821
Merge "Use bytes instead of str"
Merge "Only unpack replies on caller."