Make use of the new support page, and allow support URL customization.

Now on installations, clicking Get Support will take the user to our
support channel, which has some handy links for them. Depending on
whether they have a support contract and are able to message us
directly, they'll have a handy form there as well.

A new Support Settings page has been added. It provides a link to our
support contracts page, and shows them their Install Key (which uniquely
identifies their installation for us). They can provide this to us when
registering software or buying a support contract.

There's also a Custom Support URL field that can be filled in to change
where Get Support goes to. This makes it easy for a company to point to
a wiki or bug tracker or something, so that users will more easily go to
the right place.
Merge branch 'release-1.7.x'
Refactor out the remaining comment issue status code.

This introduces a CommentIssueBarView object, which handles everything
having to do with the issue status bars. It can optionally create and
render the element (in the case of the comment dialog), or reuse an
existing element (in the case of the review boxes).

This is a bit different from the original code in $.issueStatus. That
code did too much. Some of the responsibilities have been moved out or
cleaned up. For example, the IssueSummaryTableView now updates itself
when issue statuses change, rather than the issue bar having to update
it.

As part of this, other cleanups were able to be made. The custom
callback registration in CommentIssueManager is gone, and replaced with
standard Backbone events.

CommentDialogView now requires a reviewRequestEditor, which impacted
some tests. Also, ReviewRequestEditor now takes a CommentIssueManager,
in an effort to reduce (and eventually remove) the use of global
variables.

Unit tests were added for this.
Work around a page breakage with open_an_issue.

Some users have hit an odd problem where the open_an_issue profile field
was returning None. This indicates possibly that there was an error
fetching the field.

The only thing I can think of is that 'user', in this case, doesn't mean
what we think it means. Really, we should be using request.user and not
user anyway. It's been changed to use that. It's also now using a
conditional to output true/false instead of the hacky call to lower().
Release Review Board 1.7.8.
Merge branch 'release-1.7.x'
Import the 'with' statement to prevent an issue on Python 2.5 in test.
Update underscore.js

This updates us to 1.4.4, which contains a bunch of new features and bugfixes.

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