LibraryContent - Display content from a library in a course (SOL-5, SOL-6, SOL-7, SOL-8, SOL-117)

* **Background:** This PR contains the LibraryContent XBlock, which allows to display library content in a course.
* **Jira tickets:** Implements SOL-5, SOL-6, SOL-7, SOL-8., SOL-117.
* **Discussions:** Architecture discussed extensively on the wiki and in meetings, then the revised proposal was presented to the Arch Council on Oct. 21 and given thumbs up.
* **Dependencies:** https://github.com/edx/edx-platform/pull/6046 (merged, in feature branch https://github.com/edx/edx-platform/commits/content-libraries)
* **Partner information:** 3rd party-hosted open edX instance, for an edX solutions client.
* **Merge deadline:** Dec 12
* **Sandbox URL**: LMS at http://content-libraries.sandbox.opencraft.com/ and Studio at http://content-libraries.sandbox.opencraft.com:18010/
* **Internal code reviews PRs**: https://github.com/open-craft/edx-platform/pull/5 https://github.com/open-craft/edx-platform/pull/3 https://github.com/open-craft/edx-platform/pull/2 

**Instructions to test:**

1. Create a Library with some content, and a course
2. In the course, go to Settings > Advanced Settings and add `"library_content"` to advanced_modules.
3. Go to Content > Outline. Create a new section and subsection, then edit it. Click "Advanced" and add a new "library_content" block.
4. Once the block is added, click "Edit" to edit its settings. Most are explained on the settings editor. For the "Library" setting, you must click "Add", then paste the LibraryLocator of your library. This looks like `library-v1:ProblemX+PR0B`. (It's in the URL when you go to the library in studio). Hit Save.
5. Click "Update now with latest components from the library".
6. Optional: Click "View >" to preview all the blocks found in the library.
8. Hit "Publish", then go to the LMS. Browse into the course, and you should see that the block is replaced by random blocks from the library. To test the randomization, click the lowest "STAFF DEBUG INFO" link underneath the module, then click "Delete Student State", then refresh the page.

**Author concerns:**

1. LibraryContent is implemented as an XModule - should likely to be implemented as XBlock, though it's unclear if the necessary infrastructure is yet implemented in the runtime[s].
2. Tests assert against displayed text -- will break if (when) text changed; see inline notes for details on this.
Hi @bradenmacdonald! (cc'ed @antoviaque) After reviewing this messaging with @catong today we discussed that this message statement might need to be updated/adjusted. At this point though we'd like to suggest something with minimal PR churn, so hopefully the description below helps.

The message conveys helpful information about the number of components being rendered (count) in this space, its library source (location),  and the random selection (mode).  Currently, our generic message for container xblocks that says "This block contains multiple components"  is something that might benefit from being used to convey all or part of the new library messages (mode, count, location). Rather than have a separate message area introduced into nested container blocks in Studio, we discussed two options:

1.) Remove this library-block-author-view, which would remove the (mode, count, location) context and force authors to go into the nested view to see these three bits of information (as included in library-block-author-preview-header.html). It is a bit less convenient to not have that information rendered on unit pages, but this seems preferable to adding in a separate messaging area/format.

2.) Explore a way to modify the default "This block has multiple components" message for nested container blocks to render a message specific to the randomized-content-block  that conveys some or all of the (mode, count, location) information using the same UI pattern. I have no specific UI text in mind here, but ideally we could also shorten the text to be a bit more concise if we go with Option 2.