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: