Add support for middleware to extensions.

This change adds the ability for extensions to add middleware. This is done by
setting the 'middleware' attribute on the extension's class to be a list of
class names. These are then injected into Django's list of middleware according
to the dependency structure of the extensions.

Testing done: All unit tests pass
Reviewed at https://reviews.reviewboard.org/r/4530/
Merge branch 'release-0.7.x'
Don't error out with negative start parameters in the API.

Passing a negative number as the start parameter for paginated list APIs would
throw an AssertionError. Trivial fix.

Testing done:
$ curl .../api/review-requests/?start=-9999
Remove a bunch of hacks and quirks from jquery.gravy

We have a number of hacks and workarounds for old versions of web browsers
(mostly IE6). Since we no longer support these very old browsers, we can clean
a lot of this up. My goal here is to eliminate reliance on $.browser, since
that's blocking us from upgrading to more recent versions of jquery.

The one hack that I didn't remove from djblets is a fix for the innerHTML quirk
in IE. This quirk was fixed in IE9, but for now we still want to maintain
compatibility with IE8.

Testing done:
Smoke tested changes in a few different browsers. Checked that hover for
tooltips still worked.

Reviewed at https://reviews.reviewboard.org/r/4678/