Problem: atexit called after zmq static object destruction
Problem: atexit called after zmq static object destruction

Solution: register zsys_shutdown with atexit after initialising the
libzmq context, so that the static objects that may be initialised
(eg: mutex for random init/deinit) will be de-initialised after
zsys_shutdown is called.

Fixes aborts at shutdown caused by invaling pthread_mutex:

    at src/err.cpp:87
    at src/mutex.hpp:103
    at src/ctx.cpp:124
    run_list_atexit=run_list_atexit@entry=true, run_dtors=run_dtors@entry=true) at exit.c:83
    init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffdee8)
    at ../csu/libc-start.c:325

opedroso/czmq,opedroso/czmq,opedroso/czmq,opedroso/czmq,zeromq/czmq,opedroso/czmq,opedroso/czmq,zeromq/czmq,zeromq/czmq,zeromq/czmq,opedroso/czmq,zeromq/czmq,zeromq/czmq,zeromq/czmq,zeromq/czmq,opedroso/czmq,opedroso/czmq