WIP: 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. Here I'm moving `base._current_timestamp()` to `utils.current_timestamp()`. I still have to mock the `find()` tests. After that's done, I'll begin cleaning up the mocks.

In addition to the changes mentioned about, some of `base.py` is being cleaned up to be a little more consistent. This should make refactoring easier.

References #3