Fix Clear Case popen problems on Python 2.7.x.

On Windows 7, using Python 2.7.x, Clear Case would pop up a console
window every time popen was invoked. We now change the shell= parameter
depending on whether we're running Windows 7 and Python 2.7.
Improve the look of the extensions list.

The extensions list never really got any love, and looked pretty bad. It
didn't handle long descriptions very well, and the action links were
just kind of big and too floaty. The author was also just kind of placed
there, without much thought.

The new look places the author in the top-right of the extension's box,
out of the way but easily seen.

The description and actions are aligned on their own rows, indented
slightly from the extension name. The actions aren't bold anymore, so
they don't steal attention away from the extension names.

The descriptions don't overlap with actions anymore, due to the new
placement. They also have a decent margin from the right, so that they
don't appear to run up against the author very easily. This adds some
breathing room.

The version number isn't so close to the extension name, and is slightly
faded.

The bottom of the box is now curved, and the box has a slight shadow,
matching the rest of the admin UI.
Move .clearfix to defs.less

clearfix is generic code, and should really be in defs, so we can use it from
everywhere.

Reviewed at http://reviews.reviewboard.org/r/4277/
Fix "whitespace-only changes" toggle for files with only whitespace changes.

A change made a while back broke the logic for determining when to show
the "This file has only whitespace changes" description. That
description was necessary, because we keyed off the visibility toggles
for whitespace-only chunks based on it. So, the entire feature was
broken.

That description element has been restored and the toggle works again.

Fixes bug #2941
Escape text on hidden content dividers.

ReviewBoard shows you a certain amount of context around the changes.
Above
this you're provided with two options...

  [+] 1005 lines
  [+] public void titlesModified(List<Title> titlesAdd, List<String>
      titlesDelete,

This is all fine and well, except in the case of content like that shown
above.  'Title' coincidently belongs to an html tag, and including it
breaks the html parser for the page (as it would with '</script>' and a
few other things). HTML escaping these lines to prevent this.

The main visible result is that diff hunks beyond the first fail to
load. In firebug you get the error of...

Uncaught ReferenceError: setFileAttachmentComments is not defined

Reviewed at http://reviews.reviewboard.org/r/4330/
Fixes bug #2612
Merge branch 'release-1.6.x' into release-1.7.x
Require Django Evolution 0.6.9 or higher.
Lock down the uploaded files a bit in default Apache configs.

The generated Apache configs now set some defaults that limit what can
be done in the uploaded directories. It prevents a .htaccess from
overriding settings, prevents other modules like php from executing, and
also sets some file types to appear as plaintext so that the browser
won't render them.

This is not a complete solution for protection against malicious files.
Older versions of IE don't care what mimetypes we use and will sniff for
HTML files, for instance. It's really up to the administrator to do some
heightened security precautions, which will be outlined in a KB article
separately.
Update Amazon S3 support to use the newer django-storages s3boto backend.

It seems that the Amazon S3 support for file storage is broken. It is
likely that this is due to the changes in Amazon side. Right now the
default AWS SDK for Python is boto which is already supported by
django-storages. it only requires to specify a different backend.

This will add a new dependency to reviewboard in order to support
Amazon S3. Apart from django-storages, boto package is also required.

Note: I needed to uninstall the botocore package which was also
installed in my system. It seems there was a conflict with boto.

Reviewed at http://reviews.reviewboard.org/r/4333/
Fix the display of draft comments in review UIs.

Draft comments from other users were being shown in review UIs, since we
weren't filtering out based on whether the current user had the ability
to see the comment.

This affected the image review UI, and anything else using the default
get_serialized_comments function.
Relax markdown version requirement.

The minimum markdown version requirement for Python 2.7 is now 2.2.1,
which will make it easier for certain setups using older versions to
upgrade. This was an issue for OpenShift.

Reviewed at https://reviews.reviewboard.org/r/4359/
Add a X-ReviewRequest-Repository header to e-mails.

This adds a X-ReviewRequest-Repository header to all outgoing e-mails.
This can help assist in filtering of e-mails when dealing with many
different repositories on Review Board.

Based on https://reviews.reviewboard.org/r/4328/, but with the header
renamed.
Update the Recaptcha URLs for Google's new URLs.

Google updated the Recaptcha URLs to be hosted on google.com. While the
old HTTP URL still works (as a redirect), the old HTTPS URL doesn't seem
to be working.

We now make use of the new URLs.
Merge branch 'release-1.6.x' into release-1.7.x
Use an unguessable filename for all file attachment uploads.

FileAttachments now save with an unguessable filename. They contain the
real filename, but with a UUID prepended. This serves a couple purposes.

1) People can't guess/scan for common names.
2) Users can't craft malicious filenames with the intent to mess up an
   unsecured installation (such as naming a file .htaccess).

The original filename is stored in the database, which is useful for
display purposes. We never actually present the resulting filename
except in the HTML for linking/display.

The caption is now set to the filename by default, so there isn't
necessarily this weird "caption OR filename" thing. It's a sane default
that users can see and override.
Merge branch 'release-1.6.x' into release-1.7.x
Release Review Board 1.6.18.
Merge branch 'release-1.6.x' into release-1.7.x
Fix the list of dependencies.

These got messed up during a merge. We're now back at the proper 1.7.x
dependency list, plus an update for Djblets 0.7.16.
Don't add the new header if the review request doesn't have a repository.

The recent change to add a X-ReviewRequest-Repository header for e-mails
broke for review requests without a repository. It's now conditionally
added.