[git-rebase-chain] Add short-hand for specifying a parent branch.

This adds some new short-hand for specifying a parent branch. Now,
instead of having to prefix with "<sha>:", you can now prefix with just
":" (no sha) to indicate that the immediate parent of the first branch
should be used. This helps a lot with rebasing complicated sets of
branches.
[git-rebase-chain] Fix parent branch calculation in some cases.

Parent branches weren't properly used in all cases. If you were rebasing
a clean, linear history, and wanted to take part of it off the middle
and place it elsewhere, specifying the parent wouldn't end up working.
This was due to a bad calculation where the parent branch was being
overridden. We now sanity-check this better.
[git-integrate] Add a -e flag for editing the commit.

This adds support for a -e flag that allows the commit to be edited
after being merged. This is helpful when you want to tidy up something
from a branch or append some extra information.