Make DraftModuleStore mongo only

DraftModuleStore was originally designed as a mixin, but never used that
way, and with the upcoming changes to use the versioned module store,
never will be. This changes removes a circular dependency between
mongo.py and draft.py.
Move defaults from yaml templates to field definitions.

This standardizes the XModule field default values to be the same as the
values that are presented by studio when a component is added to a
course.

TODO: Make from_xml in descriptors that had defaults changed give the
old defaults for xml courses
No longer persist XModule templates

Instead, we use XModule field default values when creating an empty
XModule. Driven by this use case, we also allow for XModules to be
created in memory without being persisted to the database at all. This
necessitates a change to the Modulestore api, replacing clone_item with
create_draft and save_xmodule.
Change default rerandomize and showanswer

The defaults used to be rerandomize=always, showanswer=closed. This is
preserved for capa problems being imported from XML. However, for
courses, and for problems created in Studio, the default has been
changed to never/finished, to match the previous defaults used by
Studio.
Require markdown to be explicitly set
Set about page default content from overview.yml template
Fix pep8/pylint errors
Don't force field inheritance of default values
Implement next generation modulestore

A new modulestore backed by mongo that changes the data format to
facilitate easy versioning, sharing content between courses, and fast
lookup of course structure and Scope.settings data.

Conflicts:
	cms/djangoapps/contentstore/tests/test_contentstore.py