Template and split mongo refactoring

[OBSOLETE BUT KEEPING TO ENSURE I PROCESS EACH COMMENT]

Use xblock defaults in place of templates for creating modules. Have boilerplates for examples. Don't persist templates as modules in the db. Enable creation of modules w/o persisting them. Use category in place of template.

Split mongo code for handling versioning of courses and better metadata inheritance checked in but not wired in.

Miscellaneous fixes to things like the kvs.has() not dereferencing fields correctly, adding an EdxJSONSerializer for xml_export to handle datetime.

Please review: @cpennington @chrisndodge @cahrens @singingwolfboy @jzoldak