Free ZMQ contexts when no longer used

When publishing thousands of messages over IPC on Linux, I would get `Too many open files` errors and the process would abort.

It is probably be better to use copious `ensure` blocks.