Content libraries settings overrides (SOL-46)

**Background**: This PR allows course authors to use blocks from a content library but override any `Scope.settings` fields such as `display_name` or `weight`. 
**Discussions**: Basic idea was presented on the wiki page for content libraries and discussed w/ a few people at edX
**Dependencies**: Depends on the feature branch https://github.com/edx/edx-platform/commits/content-libraries
**Dependents**: This is currently blocking work on analytics support ( https://github.com/open-craft/edx-platform/pull/26 ), which depends on these changes.
**Sandbox URL**: http://sandbox3.opencraft.com:18010/   (LMS at http://sandbox3.opencraft.com/ but shouldn't be needed)
**Internal code reviews PRs**: https://github.com/open-craft/edx-platform/pull/6 https://github.com/open-craft/edx-platform/pull/25
**Partner information**: 3rd party-hosted open edX instance, for an edX solutions client.

**Author notes**:
* Capa modules unfortunately store some of their *content* ("markdown") as `Scope.settings`, which throws a wrench into the works. For this PR I have added a capa-specific workaround (20d07d210074081a038fec781e484539f1022b31).
* There is currently no way to indicate in the studio UI which fields are Scope.settings (can be overridden) and which are Scope.content (should not be overridden as changes will be lost whenever the block is refreshed with the latest version from the library). Implementing such a notice to the user would be a complex task and is outside the scope of this PR.
I just tried moving this up like you suggested but it doesn't seem to work without a valid course key. Also, 99% of the time, all of the source_keys will be coming from just one library/course, so it's only going to be calling `_lookup_course` once anyways. Thus I'm going to leave it for now - let me know if you want me to revisit.