Correct number of records loaded by QuerySet.__getitems__()

If the requested document had not yet been loaded from the cursor, `QuerySet.__getitems__()` was loading all documents through the one *after* the requested document. These changes prevent that from happening.

`TestQuery.test___getitem__()` and `TestQuery.test___getitem___slice()` are being updated to include checks of the length of the internal document cache to make sure the right number of documents are being loaded from the cursor.

Fixes #6