sync: try to checkout repos across sync failures
sync: try to checkout repos across sync failures

Currently our default behavior is:
* Try to sync all repos
  * If any errors seen, exit
* Try to garbage collect all repos
  * If any errors seen, exit
* Try to update local project list
  * If any errors seen, exit
* Try to checkout out all local repos
  * If any errors seen, exit

Users find these incomplete syncs confusing, so lets try to complete
as much as possible by default and printing out summaries at the end.

Bug: https://crbug.com/gerrit/11293
Change-Id: Idd17cc9c3bbc574d8a0f08a30225dec7bfe414cb
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/238554
Reviewed-by: Michael Mortensen <668d7528ffdc223b4950b555aea5a48377d73cb0@google.com>
Reviewed-by: Mike Frysinger <8f3f75c74bd5184edcfa6534cab3c13a00a2f794@google.com>
Tested-by: Mike Frysinger <8f3f75c74bd5184edcfa6534cab3c13a00a2f794@google.com>

codetutil/git-repo,mer-tools/git-repo,couchbasedeps/git-repo,mer-tools/git-repo,GerritCodeReview/git-repo,lipro-yocto/git-repo,TheQtCompany/git-repo,aosp-mirror/tools_repo,TheQtCompany/git-repo,lewixliu/git-repo,GerritCodeReview/git-repo,lewixliu/git-repo,codetutil/git-repo,lipro-yocto/git-repo,aosp-mirror/tools_repo,couchbasedeps/git-repo