Various optimizations making clones and pulls faster.
Made negotiation with repo with large number of heads faster for pull and push.
git cinnabar fetch and git cinnabar reclone now handle everything internally instead of delegating to git fetch and git remote, respectively.
git cinnabar reclone doesn't lose metadata history when a cinnabarclone is used.
A clone with cinnabarclone now only records one metadata update instead of two when there are updates after the cinnabarclone.
git cinnabar reclone now only records one metadata update even when pulling from several remotes at the same time.
git cinnabar reclone will try to restore as many of the heads it knew about, fetching from skipDefaultUpdate remotes if necessary.
git cinnabar reclone --rebase allows to automatically rebase local branches and detached heads when git commits change after the reclone (e.g. when switching between a plain clone to a grafted clone, or when there was a bug in the original conversion)
cinnabar.check=no-bundle2 now pretends the Mercurial server doesn't support bundle2.
Updated crate dependencies.
Many refactors, including the conversion of many functions from C to Rust.
Experimental support for tweaking the similarity level when detecting copies and renames during a push.
Experimental support for pushing named branches and tags.