evil-base-treediff: new strategy that works for any number of bases

The old method did not generalize to an arbitrary number of bases.
Change to a new pair of rules -- equivalent to the old ones -- that
reason in terms of "file states in trees" (as in tree:file), as
opposed to tree diffs.  These rules generalize because we can express
the crucial "A:f agrees with _any_ Yi:f" etc.
ebtd: handle commits without any merge bases

For a merge of disjoint history (not having any merge bases), we fake
a base with an empty tree.  This is like saying that both sides
created all of their files, which is correct.