Tweak a bunch of things with file attachments.

This change makes a bunch of tweaks to the file attachments view. Probably some
similar tweaks could be made to screenshots but seeing as they're effectively
deprecated, I didn't see the need.

First of all, I've linked the file's thumbnail to the review UI, if appropriate.
This was probably my #1 annoyance with the new system.

Next, the spacing was pretty ugly. This ended up being the product of several
different issues:
- The filename had way too much spacing, which forced it down into an ugly
  position instead of seeming like a title. I've eliminated the top and bottom
  padding.
- The thumbnail image had a max-height of 6em, and the entire file had a height
  of 13em, which meant that the thumbnail image got scaled down in an ugly way
  (to about 68px instead of 100px) and the caption bar got way too much vertical
  space. To fix this, I made the height of the thumbnail always be 100px and
  eliminated the hard-coded height of the file div, letting it scale to fit its
  children.
- After this, attachments with no caption would end up with a collapsed caption
  area. I've given it an explicit height so it's always pretty.
- The empty captions were pretty crappy. I've made it so if there's no caption,
  it explicitly says "no caption" in grey italic and added some javascript to
  the inlineEditor's "complete" handler to toggle the approprate classes.

Testing done:
Attached several images to a review request and double checked all the spacing.
Saved one caption as empty and reloaded the page to see the "No caption" text.
Edited that caption and saw the style switch back to normal. Removed the caption
and saw it be replaced with the italic "No caption". Verified that both draft
and non-draft captions worked as expected.

Clicked on the thumbnail images to load up the review UI.

Verified appearance in Chrome, Firefox, and IE.

Reviewed at http://reviews.reviewboard.org/r/3569/
Add docutils as a dependency.

This is needed for ReST thumbnails.
Fix overzealous caching of static media.

When upgrading a Review Board site, the static media references would
often be pointing to the wrong places. This was because Django cached
the resulting media files in memcached, which is definitely not what we
want. However, it will first try a "staticfiles" backend, which we can
dynamically add and point to local memory instead.

We do this after we've loaded the rest of the settings, ensuring we
have settings.CACHES set up.
Don't show "None" for the repository for review requests in the dashboard.

Review requests not backed by a repository had "None" listed in the
Repository column in the dashboard. This changes it to simply be blank.
Update our extension code for extension changes in Djblets 0.7.3.

In Djblets 0.7.3, the root urlpatterns must include
ExtensionManager.get_url_patterns, and all Extension subclasses need to
pass their arguments to the main Extension class.

The extension generator has been updated to do this as well.
Allow ReviewUI Integration through ReviewBoard Extensions.

There's now a ReviewUIHook that extensions can use to register review
UIs for different types of file attachments. This handles registering
and unregistering the UIs.

Reviewed at http://reviews.reviewboard.org/r/3565/
Update our Django and Djblets requirements.

With Django 1.5 around the corner, we now need to ensure that it won't
be used, and that only 1.4.x releases will be used instead. Our Django
version requirement now specifies >=1.4.2,<1.5

Our Djblets version is bumped to 0.7.4.
Transition to CACHES and away from CACHE_BACKEND.

Django 1.4 introduced CACHES and deprecated CACHE_BACKEND. Aside from an
annoying warning, this didn't really impact us for the most part, but it
turns out that versioned static media lookups dumps information in the
cache mapping a file path to a hashed filename. That causes media
breakages on upgrade, as pages will still point to the old files.

That logic can be overridden by introducing a 'staticfiles' cache, which
a previous change attempted. It didn't work, though, for a few reasons.
The main one being that the static media storage code loaded the caches
before we had a chance to set our own.

Now we're moving entirely onto CACHES. settings.py sets a default CACHES
with local memory caching (for dev environments). settings_local then
can override it. And then, once we've loaded that, we stick a
staticfiles cache in there. This happens during settings loading, so we
know it'll get in before the static storage code.

rb-site has been updated to upgrade settings_local.py files and to
generate new ones with CACHES instead.
Upgrade our lesscss support to 1.3.1

The latest version of lesscss is 1.3.1, and it introduced some parsing
changes with variable arguments. We now need to require 1.3.1 and update
our macros to use the new format.
Release Review Board 1.7 RC 1.
Merge branch 'release-1.7.x'