more correct EntetyItem liste maintenance

I noticed today that in a previous commit I had accidentally created a minor bug in how the "Moving" and "Mortal" entity lists are maintained in the EntityTree class.  In particular I allowed the lists to be modified while they were being iterated, thereby causing the iterator to sometimes skip an element of the list.  This doesn't cause a crash, and would rarely produce a noticeable problem, but it still needs to be fixed.
This work completes the TODO above.  We now use iterators to walk the entity lists and can then remove them individually as we go.