Fix crash in rbt diff.

The return of get_diff was not handled corretly, as rbtools/commands/diff.py
has not been changed in commit 29c899c7 as it should.

Reviewed at https://reviews.reviewboard.org/r/4739/
Initialize the superclass for ReviewBoardHTTPPasswordMgr

Pylint complains that this isn't initialized. Unfortunately, HTTPPasswordMgr is
an old-style class so we can't use super() here.

Reviewed at https://reviews.reviewboard.org/r/4781/
Make exit on SIGINT more user-friendly.

Ctrl+C'ing rbtools commands would bail out with an ugly exception. This now
adds a handler for SIGINT which will close out cleanly and exit with a useful
exit code.

Testing done:
Cancelled out of both rbt post and post-review. Checked exit code.

Reviewed at https://reviews.reviewboard.org/r/4788/
Fix handling of the --username and --password options to match post-review.

The way that the --username and --password options were handled were a little
annoying, and worked differently between rbt and post-review. This change
pushes the username/password is None logic down into the interactive prompt
method, and adds some checks to avoid prompting if these are specified via the
command line.

Testing done:
Posted reviews with rbt when specifying --username only and saw only the
password prompt.

Reviewed at https://reviews.reviewboard.org/r/4785/
Fixes bug 3114.
Ignore stderr with 'svn propget reviewboard:url .'

On my system the local en_US.UTF-8 does not exist (I have he_IL.UTF-8).
rbutils.utils.process.execute() forces the environment to be
LC_ALL=en_US.UTF-8, LANGUAGE=en_US.UTF-8. I can't override this from outside.
This means that svn will complain to the standad error about not being able to
set LC_CTYPE.

Furthermore, by default that function (execute()) will redirect stderr with
stdout. This resulted in the reviewbord server being '<long message from
svn><the URL>'.

This fix forces not redirecting the standard error there.

Reviewed at https://reviews.reviewboard.org/r/4670/
Clean up the git diff call a little bit

In particular -M (--find-renames) and --no-renames should be mutually exclusive
and the revision range should come last in the diff command before any options
terminating dashes (--) and paths. git doesn't enforce this today, but it could
tomorrow.

Testing done: Posted a review request with rbt.

Reviewed at https://reviews.reviewboard.org/r/4823/
Make rbt and post-review consistent in their treatment of missing passwords.

The way we handled the http response wasn't the same between the postreview.py
and api/request.py. In particular, different improvements had been made to each
without porting to the other. The rbt version checked the validity of
'response', while the post-review one used httplib's constants. This change
makes the two consistent.

Based on https://reviews.reviewboard.org/r/4787/
Fix git parent diff support in diff_between_revisions

The calling contract stipulates that the parent diff should be in a
dictionary entry called 'parent_diff', not 'parent_diff_lines'.

I also snuck in a change to the git unit tests: if they don't create a
dummy .gitconfig in the new HOME, "git commit" dies later, triggering all
sorts of unhappiness in nose.

Testing done: Ran post-review with --revision-range.
Fixes bug 3125
Reviewed at https://reviews.reviewboard.org/r/4870/