Problem: zlist_sort is broken

Solution: fix it, this code seems to have at least two major errors
in the design, as well as being more complex than necessary. Yay
test cases!
Problem: zlistx is too slow

Solution: implemented double-linked list from zring, with a cleaner
API and full test cases. Fixed all use of zlistx in CZMQ classes.
Problem: if zsock_destroy_ is used, does not clean sockref

This is a problem for zgossip, which uses zsock_destroy_ to clean
up its remotes table.

Solution: no need to guard removal loop with filename.
Problem: getting ZMQ_TYPE isn't stable at shutdown

Solution: store zsock type in object, and change zsock_type_str
method to take a zsock_t * rather than a void *.
Problem: double-free of message (harmless)

Solution: regenerate from zproto codec
Problem: zlistx_next is unsafe after zlistx_detach

Solution: reset cursor after any list modification (add, detach).