Problem: confused insert/delete semantics

- after prepend/append, leave cursor at newly created item
- zring_detach/_delete check at cursor first, this makes these methods
  symmetric with prepend/append, and efficient for deleting in a search
  loop (though the methods also do the search)
- zring_detach/delete accept NULL for item, meaning "at cursor"
- fix zring_detach to return detached item, so zring_delete can be built
  on top of it
- add zring_item method from zlist
- add zring_purge to empty ring without destroying it, and use this in
  zring_destroy
Problem: need purge method

Added zlist_purge. Also, append/prepend move cursor to created item
so that you can use detach/delete immediately after, as you'd expect.