Mock database calls

Continuation of fcc3ca7

Because PyMongo handles the actual database interaction, I just need to ensure that I'm calling the PyMongo methods with the correct parameters. I plan to mock as many of these methods as possible.

Normally I wouldn't commit in the middle of a task, but since that pattern has already been established for this task I've decided to continue taking periodic snapshots.

The issue I was having with `QuerySet._fill_to()` was the use of `next()`. It seems that even when an instance of `MagicMock` is given a spec that implements the iterator protocol (PEP 234) or implements it on its own, `next()` will raise `TypeError` saying `MagicMock object is not an iterator`. The solution for this seems to be this change to how the cursor is consuming. Instead of `next(self._cursor)` being used, `self._cursor.next()` is now being used.

I'm not 100% happy about this change, especially since it is being done to allow tests to be mocked, but it is necessary for right now. I will continue to investigate alternative implementations.

On the bright side, without all of the database IO, the tests are noticeably faster.

At this point I'm going to declare this issue complete. I'd like to do some clean up of the tests (e.g., creating `self.cursor` and `self.qs` in `TestQuery`), but the main test was to mock `Meta.db`. I've done that and then some.

Closes #3