Fixed #18702 -- Removed chunked reads from iter(qs)

The queryset iterator protocol involved six nested iterators. The
construct was complicated to understand and also had some performance
impact.

The reason for the setup was support for converting the rows to objects
in small batches. So, one could have multiple iterators against the
same queryset, and all of the iterators would need to make sure they
access the underlying cursor's iterator in synchronized manner and yet
do not interfere with each other.

After the patch the whole queryset is converted to objects in one go.
It is trivial to support concurrent iterators to the same queryset when
using this way.