Previously, whenever a XModule was created from a XDescriptor, we
created another level of nesting of FieldData objects. This change
prevents that nesting.
[TKTS-393]
By transparently proxying between the XModuleDescriptor and the XModule,
and between their runtimes, we can make them act as a single class, so
that we can swap in an actual XBlock instead.
This makes the LMS use an XBlock's student_view, rather than an
XModule's get_html to render for display. However, it does not yet use
wrap_child to handle instructor debug information or url rewriting.
[LMS-219]
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.
The data argument was being treated specially, but that was just
because we didn't have **kwargs support. Now we do. There are
two uses of data=, one we convert to kwargs, the other was actually
unused, so remove it completely.
* new env file to run integration tests with mongo backend
- needs askbot to get db in the right state
- needs wiki to load pages successfully
- not using migrations to make it run faster
* import test courses, check that each page loads without erroring.
* fix NonePointerException in index view to make tests pass
* misc formatting cleanups