Fix git-svn (and git-perforce) with parent diffs.

There were a few bugs making it impossible to use --parent with git-svn and
git-perforce checkouts. The first of which is that the make_*_diff methods
needed to have access to the merge base, rather than the base of the individual
diff. I've plumbed this through so that we can properly determine the upstream
revision to include in the diff headers.

The other problem was that the git-svn code was mistakenly using --parent to
mean the upstream branch rather than --tracking-branch.

Testing done:
Posted changes with a git-svn checkout, both for a single branch off of master,
as well as using --parent to post a change with un-committed parent revisions.

Fixes bug 3273.

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