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.
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
Refactor tests to no longer use templates

Add boilerplate option to ItemFactory
Minor start date fix to not use microsecs
Merge pull request #270 from edx/dhm/non-persisted-studio-templates

Non-persisted studio templates