(WIP) Studio library view - Do not merge, for internal review

That is definitely worth considering. For the prototype combining them was easier, since the `create_course()` method has a lot of code in it and most of the logic is the same as for creating a branch.

Note: in the future, if we support libraries that are separate from existing courses, we would need logic like:

```python
if course_exists:
    modulestore.create_branch(..., "library", ...)
else:
    modeulestore.create_course(..., "library", ...)
```

So there you can see how the two methods are somewhat similar. What would probably be ideal would be to move most of the code into `create_branch` and then have `create_course` call `create_branch` - that makes sense and actually reflects what's going on.