fix the "compute" phase for certain oldest-relevant commits

When the oldest relevant commit is not on every path from
the initial commit to the head commit, then it's possible
for a merge to retain commits that we don't want. Starting
from the oldest relevant commit, find the newest older
commit that is on every path.

Also, fix adjusting the oldest-relevant commit to a
selected main path, finding the closest older commit,
instead of the closest newer commit.
drop extra commit that can be included as a cut point

When a node is treated as the "oldest relevant" only because it's
the closest node on all paths from the head to initial commit, then
drop out that commit as the last step.

Also, add a test suite, finally.
don't create slices with multiple heads or initial commits