This allows uses like 'foreach_iter(exec_list_iterator, iter, *list_ptr)'.
The use of macros to access existing linked list type makes it unsuitable for its current use as a base class. Since this type and the accompanying macros are used all over the place in Mesa, we can't really change them.