Note: this is split into a separate change (like some other patches in this
series) because it's not easy to have all patches work 100% and this seemed
easier for reviewers.
When cloning or upgrading a repo, we may need to compute (or remove) sidedata.
This is the same mechanism that is used in exchange, so we re-use the new
system to simplify the code and fix the remaining issues (correctly dropping
flags and handling partial removal, etc.).
This also highlighted an issue with test-copies-in-changeset.t that kept
sidedata categories that are not relevant anymore. They should probably be
dropped entirely, but that would be for another patch.
This is a gratuitous harmful change. If someone passed something else than the default None value. We should keep it.