In-process and brokered ZeroMQ comms

In-process ZeroMQ sockets for in-shard communications, and brokered ZeroMQ connections (with managed broker process) for cross-shard many-to-many communications.

Fixes #34.
Fixes #37.