Don't be clever

Sometimes I try to be clever with my code. I really need to stop doing that.

Checking for the `id` attribute of an instance is dangerous. If `id` does anything besides map to `_id` for the class, it becomes unusable as a test of whether or not the document is in the database. This is why all of the checks are switching to `_id`.

While making the changes, I decided it's probably a better idea to go straight to `self._document`. It should require less interaction with the stack than going through `getattr()`.