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.
@andy-armstrong looks like library XBlock does not have any. If I'm not mistaking, those are set from data attributes, that are added in [xmodule_modifiers.py](https://github.com/edx/edx-platform/blob/master/common/djangoapps/xmodule_modifiers.py#L89). Apparently, LibraryRoot XBlock does not have `js_init_fn` for some reason, thus does not have any of these.

For this same reason reordering didn't work. So, since we have two issues with the same root cause, I'm not sure if it's normal. Should all XBlocks have those `js_init_fn`?