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

Good questions. What this accomplishes is the following:

If I go to:
* `localhost:8001/course/course-v1:ProblemX+PR0B+2014` - This is the normal course view, showing blocks in the `draft-branch` branch
* `localhost:8001/library/course-v1:ProblemX+PR0B+2014` - This is the new library view. With the code above, this will look for library data in the `library` branch by default.
* `localhost:8001/library/course-v1:ProblemX+PR0B+2014+branch@library` - This URL is the same thing, but with a CourseLocator string that explicitly specifies the branch. I found it a bit redundant and I thought it looks nicer and is more consistent without the `+branch@library` part there, so I included this code to make that optional.

*If* we wanted to allow multiple libraries per course (I don't recommend this though), then each library would have its own branch, and you'd access them like:
`localhost:8001/library/course-v1:ProblemX+PR0B+2014+branch@problems-library`
`localhost:8001/library/course-v1:ProblemX+PR0B+2014+branch@content-library1`
`localhost:8001/library/course-v1:ProblemX+PR0B+2014+branch@content-library2`