Classes that return allocated values now provide a free method

* zstr_free for strings
* zdir_flatten_free for file lists

This ensures frees are done in the same compile unit as mallocs,
which is necessary when using CZMQ in a DLL that may use a heap
separate from the caller's heap.