Iterables returned while fetching AllItemIDs

This still has the problem of not being safe, since the iterator is evaluated outside the lock. It's good to know an iterable can be returned but for the moment I think the simple thing to do is the inefficient, safe thing, and that's to return a copy of the collection.