Fix inplace modification bug in catalog query.

Example:

```python
for obj in self.objects({'modified': date}, ''):
    obj.setModificationDate(new_date)
    obj.reindexObject(idxs=['modified'])
```

The above example will probably only iterate over a part of the initial result set because the objects are modified to no longer match the query while iterating over the result set.

The root cause of the problem is that the catalog result set is lazy and it seems to re-query the catalog while iterating over the result set.

The fix is to always get the whole result set and convert it into a tuple before starting any (probably) modifying actions on the result.

@maethu this will fix all of your problems! :wink: