workers as go routines with channel queues

changed communication with workers to use go channels, instead of
zeromq internal process sockets.