Zmq

Refactor the codebase to a message passing oriented architecture.
This looks good so dev will now continue on develop branch.