Automatically find common ancestor

Often two versions of a topic branch start at a common ancestor, or only
the changes from the first common commit are interesting.  Allow this
base commit to be found automatically, instead of having the user find
it every time tbdiff is used.
Avoid 're' module for fixed substring search

It's much harder to read with regexes.
Pass each range as a list of revision arguments

This is a bit of preparatory work for proper A...B handling.
Handle A...B as "B ^A compared to A ^B"

The existing merge-base handling did not correctly deal with the case
where there are multiple merge bases.  We could fix it using --all,
but it's even simpler to look at B ^A and A ^B, which correspond
exactly to the two sides of A...B.
Unrefactor two-line find_common_range function
Support a three-argument syntax

I find myself often using

  git tbdiff master..topic-v1 master..topic-v2

Implement a three-argument shorthand that lets me omit the second
"master".
Merge branch 'tg/tripledot-range'

Introduces the new A...B syntax by Thomas Gummerer, and the new
three-argument "base A B" syntax by myself.