[PERF-303] Integer XBlocks/XModules into the static asset pipeline.
This PR, based on hackathon work from Christina/Andy, implements a way to discover all installed XBlocks and XModules and to enumerate their public assets, then pulling them in during the collectstatic phase and hashing them. In turn, the methods for generating URLs to resources will then returned the hashed name for assets, allowing them to be served from nginx/CDNs, and cached heavily.
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.
stores_state is now only used in a single test, in conjunction with
has_score. In practice, it's never the case that stores_state is false
when has_score is true, so we can delete stores_state entirely, and just
use has_score for the grading test.