Ensure that the update actions are grouped rather than serial.

This is a performance update. When multiple properties of the same
entity have been deleted and modified, 2 calls to update the entity are
made, one {"$set": … } and another {"$unset": … }. This is 2 network
interface calls which is a performance killer (even at lan speeds).

Fixes: #210
Update docs/upgrade.rst
Fixed issue with choices validation when they are simple list/tuple,
after model.validate() did not get any error message.
Added test to ensure that model.validate() set the correct error
messages.
Merge branch 'validation-message'
Update mongoengine/django/sessions.py

added the "get_decoded" method to the MongoSession class
Added Doc class and pk to Validation messages (#69)
Fix validation test
Fixed Documents deleted via a queryset don't call any signals (#105)
Updated tests
Merge branch 'patch-1' of https://github.com/lcya86/mongoengine into 0.8
Added the "get_decoded" method to the MongoSession class (#216)
ReadPreference that overrides slave_okay (#218)
Merge branch 'master' of https://github.com/malderete/mongoengine into 214

Conflicts:
	AUTHORS
	mongoengine/base.py
	tests/fields/fields.py
Merge fix tests
Fixed invalid choices error bubbling (#214)
Merge branch 'single-work-op' of https://github.com/njoyce/mongoengine into 211

Conflicts:
	mongoengine/document.py
	tests/test_document.py
Can call del Doc.attr to delete field value
Updated Save so it calls $set and $unset in a single operation (#211)
Fix file open rules
Doc fix thanks to @jabapyth (#206)