Introduce git_revert to revert a single commit
clean up state metadata more consistently
Updates to cancellation logic during download and indexing of packfile.
Merge pull request #1977 from ethomson/revert

Revert support for a single commit
Merge pull request #1981 from jamill/download_cancel_tweaks

Updates to cancellation logic during download and indexing of packfile.