[fix] use the same zmq context for all objects

pyzmq recommends the use of a single context for all objects in the same
application:
https://pyzmq.readthedocs.io/en/latest/api/zmq.html#zmq.Context.instance

More importantly, each context creates at least one thread, resulting in
a lot of threads with a lot of open file descriptors. This path reduces
that number by quite a bit.
13 jobs for minimize-zmq-threads in 5 minutes and 52 seconds (queued for 2 seconds)
Status Job ID Name Coverage
  Build
passed #18200
integration
containers.build

00:00:02

passed #18201
integration
libnrm.build

00:00:07

passed #18202
integration
nrm.build

00:00:07

 
  Test
passed #18208
integration
Hello.test

00:00:10

passed #18209
knl
KNL-Hello.test

00:00:41

passed #18207
knl
KNL-Listen.test

00:00:43

passed #18205
knl
KNL-Perfwrapper.test

00:00:43

passed #18203
knl
KNL-Power.test

00:00:42

passed #18210
knl
KNL-STREAM.test

00:00:43

passed #18206
integration
Listen.test

00:00:13

passed #18204
integration
Perfwrapper.test

00:00:12

passed #18211
rapl
py.test

00:01:04

 
  Style
passed #18212
flake8

00:01:02