Redesigning zlistx API

This is roughly based on zring with cleaner semantics, test cases, and actually used in CZMQ.