Fix reloading of logging settings.

restart_logging() wasn't properly reloading the logging settings. It
didn't know about all the handlers that were set, meaning the previously
registered ones wouldn't be reloaded. This led to duplicate log messages
with every attempt to reload.

It now unregisters every single log handler before re-adding them.

Reviewed at https://reviews.reviewboard.org/r/5934/
Fix a XSS vulnerability with bad input to json_dumps.

Django's JSON serialization does not handle escaping of any characters
to make them safe for injecting into HTML. This allows an attacker who
can provide part of a JSON-serializable object to craft a string that
can break out of a <script> tag and create its own, injecting a custom
script.

To fix this, we escape '<', '>', and '&' characters in the resulting
string, preventing a </script> from executing.
Fix a XSS vulnerability in the gravatar template tag.

The generated gravatar HTML wasn't handling escaping of the display name
of the user, allowing an attacker to choose a name that would close out
the <img> tag and inject a <script> tag.

Django 1.4 does not include format_html(), so instead, we just call
escape() on every value going into the HTML.
Fix running the webapi unit tests on Python 2.5.
Release Djblets 0.7.30.
Fix a XSS vulnerability with bad input to json_dumps.

Django's JSON serialization does not handle escaping of any characters
to make them safe for injecting into HTML. This allows an attacker who
can provide part of a JSON-serializable object to craft a string that
can break out of a <script> tag and create its own, injecting a custom
script.

To fix this, we escape '<', '>', and '&' characters in the resulting
string, preventing a </script> from executing.
Fix a XSS vulnerability in the gravatar template tag.

The generated gravatar HTML wasn't handling escaping of the display name
of the user, allowing an attacker to choose a name that would close out
the <img> tag and inject a <script> tag.

By switching to Django's format_html(), we can guarantee safe escaping
of content.
Merge branch 'release-0.7.x' into dev-0.8.3
Release Djblets 0.8.3.
Merge branch 'dev-0.8.3' into release-0.8.x
Merge branch 'release-0.8.x'