The new macro KATZE_ARRAY_FOREACH_ITEM_L is added, taking a
list that must be freed afterwards. It copies the list to
not enter infinite recursion if items are removed or appended.
Iterating an array by a GList is considerably faster than
continuously retrieving items, however it is also a lot
more complicated. So the new macro takes care of that and
uses a new semi-private function to avoid copying the list.
Note that the macro can't be nested, which basically isn't
useful in practise anyway.