Problem: zlist_purge does not reset list size

Solution: set size to zero when purging list.
Problem: ziflist doesn't take copy of inserted values

As I removed the autofree call, it's pointing to transient values
that get destroyed prematurely.

Solution: use _set_destructor ((czmq_destructor *) zstr_free) and
strdup() on all inserts.
Problem: redundant strdup() added in last changes

Causes memory leak on zcert metadata

Solution: we don't strdup on hash keys.