Content library permissions & collaboration (SOL-81)

**Title**: Content library permissions & collaboration (SOL-81)

**Background**: This PR adds a new page to studio where the user can manage who else has permission to access a content library. This PR also introduces a **new read-only role** used only for libraries.

**Jira tickets**: [SOL-81](https://openedx.atlassian.net/browse/SOL-81)

**Discussions**: Various offline discussions and the internal PRs below.

**Dependencies**: None - all dependencies are already merged to the feature branch. Note: this PR will conflict with #6155, so whichever is merged second will need to be rebased.

**Sandbox URL**: CMS http://sandbox4.opencraft.com:18010/ - LMS http://sandbox4.opencraft.com/

**Internal code reviews PRs** https://github.com/open-craft/edx-platform/pull/8 https://github.com/open-craft/edx-platform/pull/11

**Partner information**: 3rd party-hosted open edX instance, for an edX solutions client.

**Author concerns**: Studio's roles ("Instructor", "Staff") are vague (is there any documentation in the code?) and with a third role in the mix ("User"), it was unclear which roles were allowed to do what, so I added the concept of permissions (EDIT_ROLES, VIEW_USERS, EDIT_CONTENT, VIEW_CONTENT) defined via roles... Would like feedback on this approach.
I changed it slightly... either `None` or `""` works if you're submitting JSON. The issue is that this tests was submitting the data via POST, and the only thing that doesn't work anymore is submitting a POST request with `role=None`, because that actually results in the string value "None" appearing as the value in the POST data. The code now requires that the `role` field be present one way or another, and it's value is `None` or `""`.

So this would also work fine:
```python
         resp = self.client.post(
             self.detail_url,
            data=json.dumps({"role": None}),
            content_type="application/json",
            HTTP_ACCEPT="application/json",
)
```