Ned/fix lms 530 xss in courseware books

This was a simple fix (change the URL pattern to only accept integers), but I wrote tests for the views, and had to change CourseFactory a bit along the way.  I've left the commits separate so you can see the progression.

About the unused /book-shifted/ URL: I wasn't going to remove it, but then pylint pointed out that it doesn't even work (it doesn't provide book_id to the view it calls), so out it went.

Opinions?  @wedaly @cpennington