Fix list_dequeue/dequeue_iterate

I forgot to change code that casts the result of list_dequeue.  Oops.
The list_dequeue/list_pop macros now use list_entry any do not depend on
the list_head struct being the first member of the containing structure.