Provide Git and Mercurial commit IDs when posting diffs.

Review Board 2.0 supports associating commit IDs with review requests,
but it must be provided by the client.

RBTools now provides these commit IDs, when returned by the diff call.
These are only provided by Git and Mercurial right now, where they're
more useful and in higher demand.

The commit ID won't be posted if running on older versions of
Review Board.
Make unit tests run again.

Unit tests haven't been working since post-review was removed. This
restores the test functionality, and fixes unit tests that have since
regressed.
Fix PyFlakes warnings in RBTools.

This cleans up the PyFlakes warnings and errors found in RBTools. There
were a couple issues that would have caused breakages in production use,
such as Perforce path posting.
Improve the resulting URL output from rbt post.

The new change to display the diff URL was a nice addition, but
displaying both URLs staggered on consecutive lines felt a little hard
to read.

This aligns the URLs to help with the readability. It also adds a blank
line between and after, which helps separate the results from each other
and the prompt (something that's bothered me for a while). This makes it
easier to click the links without clicking the wrong thing.
Fix 'rbt close' to not require a working directory if the server is specified.

Because of rbt's post-review heritage, it often requires a working directory,
even if all it uses it for is to detect the Review Board server path. This
change fixes 'rbt close' to skip the SCM detection if a server is specified
(either via the command-line or the home directory ~/.reviewboardrc).

Testing Done:

Closed https://reviews.reviewboard.org/r/5464/ by running
    rbt close --server=https://reviews.reviewboard.org/ 5464 --description="Closing review with rbt close --server=https://reviews.reviewboard.org/ 5464"

Bugs closed: 3249

Reviewed at https://reviews.reviewboard.org/r/5465/