Draft: push: write git objects in packs
Pushing several thousand commits will easily bog down due to the many loose objects created. To address this, we write the objects in packs; the main downside to this is that it significantly increases the memory footprint.
Closes #429 (closed)