[update-checkout] Backport recent fixes to 3.1 branch
Add fixes for problems in the --scheme, --tag, --clean, and --dump-hashes
options of update-checkout to the swift-3.1-branch. Among other fixes,
this will allow users to easily switch between the 3.1 and master branch
schemes and to check out 3.1 tags which postdate this commit, without risk
of corrupting the state of their repositories.
Also brings the 3.1 branch's update-checkout-config.json file in sync
with all the recent changes in branch schemes.
For update-checkout, this commit includes the following commits, in
chronological order:
b46ce6c
34099d4
2c65c77
631495c
07ddf07
309312d
0312579
There is also a very simple one-line fix to update_repository_to_tag(),
to fix a minor bug also fixed by fecbd22: "Unnecessary setting of the
cross_repo flag by the --tag argument has been removed, so repos which
lack the tag are now properly rebased when updated."
I have deliberately omitted any recent commits which added new features to
update-checkout, to minimize the chance of introducing bugs to the 3.1
branch. I also left out the recent Python lint fixes.
For update-checkout-config.json, this commit includes all changes up
through the present state (commit cd6474c).