Failing tests demonstrating a bug in ->Last introduced by d97c291
Return the correct record from ->Last instead of, since d97c291, the first record

When ->Last is called on a collection before the search is actually run,
the item iterator set by Last is based on a count query
(opportunistically run by ->Count when the actual results haven't been
fetched yet).  ->Next is then called, and the actual search query is
run.  Since d97c291, running the search query resets the item iterator,
effectively causing Last to return the first record when called under
these very particular circumstances.  Restore the proper behaviour of
Last by running the search query if necessary before inspecting the item
count and setting the item iterator.

This change also closes a race condition that occurs when the matching
records change between running the count query and the full query.  When
results have already been fetched, ->Count will not run another query
but simply return the number of fetched results.  This keeps the object
internally consistent.
Document the caveat of using GotoItem with a non-zero N