Rename 'view-interdiff' url to 'view_interdiff'

Most of our other views (and all of the other diff-related views) use
underscores in the URL names. This change just makes us consistent.

Reviewed at https://reviews.reviewboard.org/r/4745/
Add missing documentation for extension hooks

This change adds docs for the following hooks:
* ActionHook (and its various subclasses)
* FileAttachmentThumbnailHook
* ReviewRequestDetailHook
* TemplateHook

I've arranged the hooks documentation alphabetically, since I'm not sure of a
better way. While I was doing this I noticed a little bit of weirdness in the
ActionHook __init__ (actions should have been an empty list, not an empty
dict).

Testing done:
Generated the HTML docs and checked that things made sense and cross-linked
correctly.

Reviewed at https://reviews.reviewboard.org/r/4744/
Don't trigger revisionSelected from the revision selector when there's no change.

Dragging a handle on the revision selector would cause a reload, even if it was
dropped back on the place that it started. This change guards it, and fixes
some logic to copy the values array instead of referencing it.

Testing done:
Checked that changing the revision selector would trigger a load, except when
the handle was dropped back on its previous location.

Reviewed at https://reviews.reviewboard.org/r/4746/
Update to use Djblets's new extension imports.

This updates the imports to pull from the new locations in the
djblets.extensions module. It leaves the Review Board extension modules
as they were.
Update to the latest version of django-pipeline.

Now that django-pipeline has an explicit setting for enabling/disabling
media pipelining, and now that we're using Django 1.5, we can make use
of it again. This upgrades us to the latest release of pipeline.
Fix switching to Custom repositories and missing hosting services.

When switching the hosting service of a repository from a service to
Custom, the repository would stay on the hosting service. This was due
to a repository still being associated with a HostingServiceAccount. We
now set that to None when switching.

There was also an issue loading the administration page for repositories
when a hosting service was missing (due to an extension not being
enabled). If a repository had a hosting service account, it was assumed
that it could load that account, and that would fail, breaking the
listing of repositories. We're now a little more careful in this
particular code path.
Merge branch 'release-1.7.x'