Problem: zring_pop/remove don't return item

Fixed this and also cleaned up node creation to be more consistent.
Also, head is now pointer not item, so the code is cleaner and less
surprising.