Different way of handling optional AngularJS

Instead of creating a pure AngularJS application, these changes
make it so we can mix AngularJS-rendered pages with Django-rendered
pages.  As long as the Django app does not specify a `content`
block, or keeps it to the empty view, it will load into AngularJS.

This also allows us to not have to pass diff data through the API.
Force a window reload on unregisted AngularJS routes