Create new class for doubly linked lists.

I've tried to model this close to zlist but made a few changes in the API:

1) no assumption that items are C strings (I need a list of structs)
2) append and push return an abstract handle that is used in remove for fast removal
3) a single free_fn function is set for the whole list at creation time that matches the CLASS api (takes a void **self_p)
4) zdlist_dup() takes a duplication function
5) provide zdlist_item_destroy() function that simply calls free() on the item
6) no sorting, don't need it and don't think it belongs in a list

I didn't get a manpage build for zdlist. Something is missing there.