Iterator query execution order fix

Having `IteratorInterval` at the end of the execution causes offset problems when used with an `IteratorFilter`.

For example:
```
$reader->setOffset(200);
$reader->addFilter('someFilterFunction');
foreach ($reader->query() as $index => $row) {
    // $index should be 200 but it returns a value around 600
}
```

Moving `IteratorQuery` in the beginning of execution seems to fix this problem.