Store rows in the model, remove rewind and random access from
query result class.
This implementation is way simpler but the (forward) iterator
can be used only once.
I'm still convinced that the old implementation was better and more
flexible but I need to move forward.
Client code will need to store the results from the iterator.