Don't show "Show changes" when there is only one diff revision

Added logic to review_detail.html so that if the past revision number of a diff
is 0 (when the first revision of the diff has been added after a review request
has been published) so that the "Show changes" link would not be displayed.

Testing done:
Reproduced the bug by publishing a review request, then adding a diff and
verifying that the "Show changes" link does not appear. Added a second diff to
the same review request and verified that the "Show changes" link does appear
as it should for the second diff.

Reviewed at https://reviews.reviewboard.org/r/4613/
Fixes bug 2901
Move diff pagination into javascript.

The pagination selector is pretty ugly and terrible at this point, and we'll
probably redesign this later, but for now, I'd like to keep it as-is but allow
it to update dynamically so we can load different revisions. This change moves
its rendering into javascript.

Testing done:
Set up a few different revisions with different pagination. Checked that the
pagination selector rendered appropriately in different cases, and that the
different links went to the right pages.

Reviewed at https://reviews.reviewboard.org/r/4603/
Import ValidationError from django.core.exceptions instead of django.forms.

They haven't announced any official deprecation of this, but it seems like
exceptions are being consolidated in one place. This change also marks some of
the validation strings for translation which we had missed.

Testing done: Ran unit tests
Reviewed at https://reviews.reviewboard.org/r/4608/
Speed up the tests further, and remove interdependencies between tests.

Several of the tests would call other tests to set up data, invoking API
requests to provide the data, which added to the test execution time.
This also made it harder to separate tests out into list/item suites.

The tests are now setting up their data using the new factory methods
instead of calling other test functions.