It turns out that not as much code can be shared between
landing revisions and diff patches as I originally thought.
Anything that is shared can be composed of smaller scripts that are
called by two separate implementations.
Leaving the two implementations together in one script creates an
unnecessary hazard for testing and authoring future patches. It's best
to clean this up and re-introduce a separate code flow when there is
something ready for handling diff patches.
This patch has no change in behavior for the revision patch code flow.
Depends on D7421
Note: The name land-patch.sh is not entirely appropriate anymore.
But I left it as-is in this patch to facilitate code review. I will rename
it to something more appropriate when I introduce the sister implementation.