gc: Use dedicated commit-graph write func
Stop relying on git-gc to write commit-graph and instead, use a dedicated commit-graph write func.
This should enable more customization to commit-graph write strategy in the future. I.e. switching to only using 'split' commit-graph or including Bloom filter option in commit-graph.
After this MR:
- I intended to switch gc to write
split
commit-graph by default. This means that usual-write will only write the 'split' commit-graph while gc-write will consolidate all the split into one (but still using commit-graph-chain) - And once git 2.27.0 become the minimum supported version, I will turn on the Bloom filter write on each GC run.