Add LmsKeyValueStore.update method

Refactor new set_many and update XBlock version number.
First pass at implicit saves.
Save position should actually save the position.
Provide MongoKeyValueStore.set_many
Switch publish to using the field_objects in the model_data_cache.
Fix the factory to save after modifying the module.
Fix contentstore tests and fix some bugs.

Add `save`s in to fix failing CMS tests
Update CMS grading tests
Fix common tests and test-helpers.

* Fix some bugs in xmodule and some tests.
* Add tests for error cases in the keyvaluestore.
* Add in some module_render tests
* Refactor xqueue_callback to make it more testable.
* Clean up test helpers.
Update XBlock version
Pylint violation fixes
Delete unused code and test for that code.
Make code work with new modulestore.
Clean up set implementation and add comments to save
Make comments on save operations clearer.
Update docstrings