Add zmq socket abstraction.

And zmq_sub would return it so that caller can utilise its send_event api.