Remove upsert

The upsert behavior was not well thought out. When performing an upsert through PyMongo the first dictionary contains the fields to match against and the second dictionary contains the fields to update, with both documents being inserted together when the document doesn't already exist. In both `Model.save()` and `Model.raw_update()` only the `_id` was being matched against. This should result in new document always being inserted, except in the case that a collection already contained an `_id` of None. This is means upsert won't behave correctly, and certainly not as intended.

Because of this, all upsert functionality is being removed. This also greatly simplifies the code, especially for `save()`.