Fix --parent situation for mercurial.

The mercurial implementation was using --parent to specify the upstream branch,
when it really ought to have been using --tracking-branch. This made it very
hard to support using --parent to specify an intermediate branch between the
upstream and the tip when posting without explicit revisions.

This change fixes the MercurialClient to use --tracking-branch to override
the detected upstream branch, and then allows --parent to actually generate
parent diffs.

Fixes bug 3067.

Testing done:
* Ran unit tests.
* Posted a diff using --parent to my local devserver.

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