Provide better protection for creating from changenums on Local Sites.

We saw an issue where a review request on a Local Site was getting
created without a local_id. This seems likely to be due to an exception
when updating from a change number. I could not reproduce it locally,
but it makes sense.

This adds some bullet-proofing to that, falling back to not updating the
review request. It also doesn't attempt to update until after the review
request has been assigned a local_id (if on a Local Site).

Reviewed at https://reviews.reviewboard.org/r/6027/
Don't strip leading slashes from CVS file paths.

Fetching CVS files requires the filenames to have the leading slashes intact.
This change adds a normalize_diff_filename method to CVSDiffParser which
overrides the default behavior.

Testing done: Ran unit tests.

Fixes bug 3433.

Reviewed at https://reviews.reviewboard.org/r/6029/
Fix spurious logging for FileDiff insert/delete counts.

The logging statements for "overriding" insert and delete counts were
surrounded by conditionals that didn't quite reflect the reality of when things
get overridden. This fixes it so that we don't spam the log files.

Testing done: Ran unit tests.

Reviewed at https://reviews.reviewboard.org/r/6032/
Adding a subversion repository accessed via https configured with basic authentication fails

Not every call to SVNTool.build_client passed the username and password, even
when they were available. This is a problem when trying to do things like
validate certificates.

Testing Done:
From the admin panel I tried to add a subversion repository accessed via https
configured with basic authentication fails with an "Authentication failed"
error. Tested with pysvn but it seems that the same may apply to subvertpy. The
username and password enter in the repository configuration are not passed when
validating the repository.

Reviewed at https://reviews.reviewboard.org/r/6034/
Added support for DELETE request to api/session and created test cases for it.

The API currently creates sessions (with associated cookies), but there's
currently no way through the API to log out. This makes it so that a script can
authenticate, do it's job, and then remove the session afterwards.

Testing Done: Ran unit tests.

Bugs closed: 3294

Based on Peter Tran's work reviewed at https://reviews.reviewboard.org/r/5817/
Funnel through the Empty ChangeSet error in the web API.

Updating a review request with a change number that represents an empty
changeset would cause an internal server error. We now return a proper
error code for this.

Reviewed at https://reviews.reviewboard.org/r/6041/
Merge branch 'release-1.7.x' into release-2.0.x