Problem: zdlist API is a bit complex

Apologies if this patch removes functionality that's needed. Mainly I
made next/prev symmetric and then removed the head/tail methods which
are redundant with first/last. Then, as there are two conflicting API
models (iterator, and node), I removed the node API part. If you need
a structure with direct access to items, you'd use zhash. Finally, as
we're allowing free_fn on items, it makes no sense to return an item
value on pop/remove. Oh, and I added an insert method, empty for now,
to insert after cursor.