Tidy up the branch views and add some defensive overrides.

The project's non-primary views did not handle "branch" in the URL
properly and also used the standard message when no sub-projects were in
the view (which didn't read so well).

A new BranchListView was created to wrap the standard ListView and
accomplish the above.  In addition, some Jelly was simplified for
displaying the primary view on the index page and the project header was
added for all views.

View types for the project were limited to BranchListView to prevent use
of the standard views that cause errors.

Across the classes, defensive overrides were added to disable some
functionality that isn't desired for the project's views and
sub-projects.