@jmcarp Could you review this?

It turns out, pymongo's `Collection.find_one()` method doesn't raise exceptions. It returns `None` if no results are found, and *the first result* if one or more are found. I modified this method to behave as we defined for StorageObject a few days ago.

I wasn't crazy about hitting the database twice (once to get the length, and again to get the object) - so I placed a limit of 2 on the query. This way, we'll get back zero, one or two items - one state representing a successful query (one), and a state representing each exception type that can be raised.