WIP: Move defaults from yaml templates to field definitions.

TODO: Make namespace fields point at original class definitions
Remove noop if statement
Customtags can't be inserted by studio
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.
Minor pylint/whitespace changes
Force locations to be Location objects earlier
Make url matching regex flexible to allow for browsers that munged :// into :/
Work around XBlock limitations to force persistance of field mutation
Test start_date in course settings
Assert date equality directly, rather than by using a delta of 0
Clean up variable naming
Standardize on get_default_time_display
Make SessionKeyValueStore variable names clearer
Fix SessionKeyValueStore.has to use the correct indexing value when looking up data
Remove unused template
Make request.POST be only json content when using expect_json
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.

TODO: Add documentation from wiki to docs/source
Add docstring to CourseDescriptor.__init__
Handle edge case when trying to aggregate progress in an empty sequence
Retrieve location from self in CustomTagDescriptor