Update autocomplete to be compatible with newer jquery-UI versions.

This updates our autocomplete widget to not collide with the
autocomplete bundled with modern jquery-UI versions, and to work better
with how widgets now work.

This has not been tested in a while and may break with the latest
versions. It's intended as a start.
Move to jQuery-UI 1.8.24.

This updates Review Board to use jQuery-UI 1.8.24, which fixes a number
of issues in the UI that we had with 1.6rc5.
Merge branch 'js/rbautocomplete-upgrade'
Set some defaults for post-review for release-1.6.x.

This fills in the BRANCH and TRACKING_BRANCH defaults for post-review,
which will help when posting changes from this branch.
Merge branch 'release-1.6.x'
Set the BRANCH default to master for post-review.

When posting a review request using post-review from master, the default
branch will now be "master".
Make cookies configurable.

This simple change provides ability to change cookie parameters like age, name.

Tested on internal server. Two instances of RB 1.7beta2 have been deployed
thanks to virtualenv on same hw:
 * first is production environment located at "reviewboard.mycompany.com"
 * second is test environment located at "reviewboard.mycompany.com:8001"

Reviewed at http://reviews.reviewboard.org/r/3391/
Rewrite our screenshot review UI and introduce generic review infrastructure.

The screenshot review support has been rewritten to have a nice
model/view separation and to abstract much of the review process into
generic models and views.

There's now a few new classes: AbstractCommentBlock, AbstractCommentBlockView,
AbstractReviewable, and AbstractReviewableView. These handle the basics
of creating review UIs and comment blocks.

The screenshot subclasses, as a result, are fairly minimal for the most
part.

From here on out, it should be easier to create review UIs for custom
mimetypes. This will get even easier as more of our review
infrastructure is moved to new Backbone models and views.
Fix a quoting issue in .reviewboardrc.

A double quote was mistakingly changed to a single quote.
Merge branch 'release-1.6.x'
Display the "Add Comment" link after canceling an editor.

The "Add Comment" link was only being reshown after submitting a change.
If canceling, the link wasn't being shown again. We now force it to fade
in when canceling.

Fixes bug #2696

Reviewed at http://reviews.reviewboard.org/r/3415/
Fix version parsing for Mercurial.

Our version parsing was relying upon integers only in the version, and
had a probably incorrect hack for handling "+" in the version number.

Since Mercurial is a Python package following Python versioning rules,
we should be using parse_version comparisons. This is a lot less
fragile, and works with their new 1.4-rc release they just put out
(which completely breaks Review Board today).

This will be needed for an upcoming release soon.
Introduce the beginnings of an ssh app.

This introduces an ssh app, which factors out and structures the SSH
utility functions originally found in scmtools/sshutils.py.

The new ssh app contains an SSHClient object, which represents a session
tied either to a base .ssh directory, or a namespaced directory within.
Down the road, we may want to take further advantage of the namespacing,
such as for repository access. Right now, we deifne a namespace as a
'/'-separated path.

Most of the original utility functions in sshutils now live within
SSHClient. Instead of each of those taking a local_site_name parameter,
this is now passed only when defining the SSHClient, as the namespace.

Multiple clients can exist at a time.

The various SSH-related errors have moved into ssh/errors.py, and have
been decoupled from SCMError. This is clean in all cases except
AuthenticationError. Both apps have a concept of an AuthenticationError,
with ssh's being a bit more specific.

What we're doing is keeping two versions. The SSH one is
SSHAuthenticationError, and contains all the original logic. The new one
is AuthenticationError, and basically has SSHAuthenticationError as a
mixin. The two call sites in scmtools that need to really deal with this
check for an SSHAuthenticationError and convert it into an
AuthenticationError. The purpose of this is to keep the ssh app
decoupled from SCMTools.
Add support for storage backends for SSH keys.

The SSH client functionality is now separated from SSH key storage.
SSHClient has no knowledge now of where keys live. It could be on the
file system, in memory, sitting on a gopher server, or whatever else the
storage backend is talking to.

All the file access has been moved to a new FileSSHStorage class.

New unit tests have been added to test the new code paths.
Use the database as the location for SVN certificate acceptance storage.

Our cert model for Subversion worked such that when the user confirmed a
cert before adding a repository, we would tell Subversion to go ahead
and save that cert to the local ~/.subversion/auth. If the cert file
wasn't there, file fetches would fail. This made it quite annoying to
have a multi-server deployment, as that directory would have to be
shared.

Now, upon acceptance of the cert, we store the cert information in the
repository's extra_data field. We then look it up from there if pysvn
tells us it needs verification again on a cert.

We still save on the filesystem as well, which is more convenient, but
we're far more resilient now. We can work multi-server, and we can
easily nuke the auth directory, without affecting file fetches.

We also still generate the Subversion config files to configure rbssh
usage for Local Sites, but these are already resilient enough by
themselves, as they're just recreated as needed. So now, Subversion
should work perfectly fine without having to have a permanent
.subversion directory.
Merge branch 'release-1.6.x'
Use the SHA1 password hasher for unit tests.

Django 1.4 moved to using PBKDF2 for handling password encryption. This
is much slower than the old default, SHA1, which can delay unit tests.

While we don't create many users in our unit tests, we seem to do this a
little bit. Forcing this to use SHA1 for unit tests speeds up the tests
a little bit, and keeps us sped up for future tests. It appears to save
about 6 seconds in our tests.
Bump our Django requirement to 1.3.4.

This bumps to the latest security release of Django.
Merge branch 'release-1.6.x'
Bump our Django requirement to 1.4.2.

This bumps to the latest security release of Django.