cxx: add global ZeroMQ context
Next try to add a global ZeroMQ context after !336 (merged) failed. This will be useful for !375 (merged) and debugging in general since we cut down the number of threads we have.
It was a bit tricky due to the static destruction order: it is the opposite of the initialization order. Since the SinkManager
is the first static object we create, it will be destructed last. However this is a problem because we construct the global ZeroMQ only after this. A nifty solution to this is to make the global ZeroMQ context as shared pointer and store it in all static classes (that is only the SinkManager
so far).