catfile: Amortize memory allocations when parsing objects
This MR refactors the catfile and gitpipe packages to amortize memory allocations better when parsing objects. The end result is 80% less memory use in ListAllCommits and 45% less in FindAllTags, which I've used as benchmarks.
Part of #3783 (closed)
Edited by Patrick Steinhardt