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

Might be worth waiting for upstream review to see what they think, but calling `create_course()` on an existing course from `create_branch()` seem counter-intuitive and a bit hacky -- given that it's a prototype it's fair game, but some refactoring to extract the logic that we need from `create_course()` could possibly make this cleaner?