A low-level Git packfile builder.
This implementation requires the caller to push directories to the packfile manually, in the order that Git expects.