Use only the top commit for summaries for git commits with multiple parents.

When dealing with a merge commit the '%s' pretty pattern is the newline
concatenation of the summaries...

*   4182bc3 atagar@torproject.org  (HEAD, tmp) - merging branches
|\
| * 1f71921 atagar@torproject.org  - second branch
* | b41fb93 atagar@torproject.org  - first branch
|/
* ae6aca7 atagar@torproject.org  - base commit

% git log --pretty=format:%s HEAD^..
merging branches
second branch

This previously caused 'postreview.py --guess-summary' to fail for merge
commits since summaries cannot contain newlines. This was fixed by replacing
newlines with spaces...

https://github.com/reviewboard/rbtools/commit/4ee9be4e

On reflection a summary of "merging branches second branch" isn't what we want
- it should be just the merge commit. We can achieve this by using 'HEAD^!'
instead...

% git log --pretty=format:%s HEAD^!
merging branches

Testing done:
Tested by posting a code review using '--guess-summary' with the above merge
commit.

Reviewed at https://reviews.reviewboard.org/r/4147/
Add "checkout of branch" to the bzr branch regex.

When a branch is bound to a remote location, bzr info will report the branch
name with the string "checkout of branch". We weren't handling this in our
regex.

Fixes bug 2960.
rbt patch subcommand to support --print option

This adds an option to print the patch to stdout instead of trying to apply it.
This allows more flexibility. i.e. in case the patching fails, or the user
wants to inspect without patching.

Reviewed at https://reviews.reviewboard.org/r/4525/
Fix a Mercurial crash with 'hg outgoing' and only warnings.

When trying to post without any outgoing changes, and with warnings
(for, say, unverified HTTPS certificates), things would crash. It
assumed if there was any output, there would be at least one non-warning
line, but this isn't always safe. We now check for this.