Library Content - Filter library content by CAPA problem type

**Background**: This PR contains the LibraryContent XBlock, which allows to display library content in a course.
**JIRA ticket**: [SOL-122](https://openedx.atlassian.net/browse/SOL-122)
**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/6155 (probably will require a rebase after 6155 merged)
**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/24
**Partner information**: 3rd party-hosted open edX instance, for an edX solutions client.

**Author concerns**: see inline comments

**Testing instructions**:
1. Create a library with a couple of Problem XBlocks of different types (e.g. "Checkboxes", "Dropdown", "Multiple Choice")
2. Add Library Content XBlock to a course.
3. Edit Library Content settings. By default "Problem Type" should be set to "Any Type", LMS view should display problems of any type.
4. Set "Problem Type" to one of the problem types in the library (e.g. "Checkbox Group", "Select Option" or "Choice Group"). Please note that there are no one-to-one correspondense between names of problem *templates* in Studio and actual names of problem types. Save, publish, navigate to LMS as a student and ensure only Problems of selected type are shown.
5. Set "Problem Type" to any problem type **not** in the library (e.g. any except "Checkbox Group", "Select Option" or "Choice Group"). Save, publish, navigate to LMS as a student and ensure no XBlocks are shown.
This filtering should happen in `LibraryToolsService.update_children` as it has the following benefits:

* It happens once per XBlock, not once per student as in this version.
* It automatically updates "This component will be replaced by N components ..." in studio

However, I was unable to achieve that. `update_children` operates on XModuleDescriptors, not XModules, while filtering by CAPA problem type requires examining `LoncapaProblem`, which is available on CapaModule only. Unfortunately, the context here does not allow fetching XMoudule from XModuleDescriptor, as it uses `CachedDescriptorSystem`, which does not have all the machinery to support XModule  => attempts to fetch XModule by XModuleDescriptor or usage key results in `UndefinedContext`.

@cpennington @dmitchell are there any ways to get actual CapaModule in such a context. To save you a little bit of digging, entry point for `LibraryToolsService.update_children` is `LibraryContentDescriptor.editor_saved`