Studio Support for Content Libraries (SOL-1, SOL-2, & SOL-3)

@antoviaque @explorerleslie @cahrens

**Background**: This is the UI code to enable creation and editing of [Content Libraries](https://openedx.atlassian.net/wiki/display/SOL/Content+Libraries). Together with #6033, it implements SOL-1, SOL-2, and SOL-3. Once #6033 has been merged to master, this branch is to be merged to `content-libraries`, which will become the new feature branch for library support.

**Discussion**: Architecture discussed extensively on [the wiki](https://openedx.atlassian.net/wiki/display/SOL/Content+Libraries) and in meetings, then the revised proposal was presented to the [Arch Council](https://openedx.atlassian.net/wiki/display/AC/Architecture+Council) on Oct. 21 and given thumbs up.

**Partner information**: 3rd party-hosted open edX instance, for an edX solutions client.

**Merge deadline**: ASAP - several other PRs are ready and blocking on this.

**Dependencies**: Requires #6033.
@cahrens Variables inside a translation string are totally ok - what do you see here that will get messed up here? All I see is the placeholder {err} which is OK, see https://github.com/edx/edx-platform/blob/master/docs/en_us/developers/source/i18n.rst#use-named-placeholders (@bradenmacdonald although "error" might be a better, more context-rich variable name).

I don't know if this will work, see https://github.com/edx/edx-platform/blob/master/docs/en_us/developers/source/i18n.rst#building-and-testing-your-code on how to see if this is being scraped properly. If not, we can figure out the best way to do things.