(WIP) LibraryContent - Display content from a library in a course (SOL-5, SOL-6)

@antoviaque 

* **Background:** This PR contains the LibraryContent XBlock, which allows to display library content in a course.
* **Jira tickets:** Implements SOL-5, SOL-6.
* **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.
I don't like the way how assertion is done here. It's better tested if assertion against XBlock **extracted from modulestore** is done. But this would couple acceptance tests to modulestore, which is not the case now (or at least it looks like acceptance tests are abstracted from modulestore concept).

So, if it's ok to couple tests to modulestore and it's possible to use modulestore from tests level - this test can (and should) be rewritten to assert against XBlock instance, rather than displayed text.