Require the latest security release of Django 1.4.

The security issues do not appear to impact us, but better safe than
sorry.
Fix S3 querystring auth.

The boto-based S3 backed defaults to using query-string authentication, which
causes the URL to expire after a while. This is meant to prevent hot-linking,
but in our case, it's easy to have it not quite sync up with our caching,
ending up with a cached link which is then expired. This change turns off
querystring auth in the storage backend.

Testing done:
Configured my devserver to use S3, and uploaded a file. Checked and saw that
the relevant URLs generated no longer contained the various querystring
parameters.

Reviewed at https://reviews.reviewboard.org/r/4457/
Document how to reset the authentication method.

Users can use the set-siteconfig management command to fix a broken
authentication setup. We've had a bug open for quite some time asking how to do
this, and it really ought to be documented.

Fixes bug 1259.
Reviewed at https://reviews.reviewboard.org/r/4458/
Merge branch 'release-1.7.x'
Add machinery for internationalizing our javascript.

This adds the javascript catalog view, and the random bits of plumbing we'll
need to localize all the strings in our javascript code. It does not actually
mark any strings in the javascript code--that's coming in a future change.

Reviewed at https://reviews.reviewboard.org/r/4452/
Mark strings in javascript for translation.

Django provides a nice, gettext-like API for localizing strings in javascript
files. Now that we've integrated the jsi18n view, we can mark these strings so
that people can translate them.

The only unfortunate thing about this is that there's no good way to wrap
strings and have them concatenate (like there is with python or C), so for
longer strings that we want to localize, they have to be all together on one
line.

Testing done:
- Extracted messages and saw that djangojs.po had all the expected strings.
- Added some fake italian and chinese versions of the "An issue was opened"
  string and saw that when my browser was set to prefer those languages, I saw
  the translated string.
- Ran js-tests.

Reviewed at https://reviews.reviewboard.org/r/4453/
Update PO files

This updates the python/templates PO files and adds new ones for javascript
strings.
Remove old i18n scripts.

These were pulled in long, long ago, before django-admin.py had makemessages
and compilemessages commands. They're now obsolete, since the django ones work
better and have actual, factual documentation.
Fix i18n issues with the diff viewer.

The diff viewer had several small issues which caused problems with i18n:
- Because the diff chunks can contain localizable strings, we need to make sure
  that we don't show someone cached data from when it was rendered in a
  different language. Add the language name to the cache keys.
- The "New File" and "New Change" strings used for the revisions on the right
  hand side were using _() at the top level of the file, which performed the
  localization when the file was evaluated. This meant we'd localize them to
  whatever LANGUAGE_CODE was set to.
- A few strings in diffutils.py weren't marked for translation.
- The "<n> lines" items in the expand blocks weren't properly marked for
  translation.

Testing done:
- Verified that we were using the correct cache keys.
- Tested changing my language at runtime and reloading and saw that the diff
  entries were rendered in other languages.
- Verified that the generated message catalogs contained a proper pluralized
  message extraction for "<n> lines".

Reviewed at https://reviews.reviewboard.org/r/4454/
Allow upgrading all configured sites at once.

New site installations on Linux/Mac will attempt to write the location
of the site to /etc/reviewboard/sites. Upgrades can then be done across
all sites by doing 'rb-site upgrade --all-sites'.

Reviewed at https://reviews.reviewboard.org/r/4204/
Merge branch 'release-1.7.x'