WIP: Upload pack

This is a tracking PR for the upload-pack re-implementation in libgit2.

Todo:
- [x] Generate a list of refs
- [x] Receive and parse wants
- [x] Receive and parse shallow
- [x] Receive and parse deepen
- [x] Generate shallow/unshallow list
- [x] Receive and parse haves
- [x] Generate and send pack
- [ ] Add support for multi_ack & multi_ack_detailed
- [ ] Add support for side-band & side-band-64k
- [ ] Add support for no-done
- [ ] Add support for no-progress
- [ ] Add support for thin-pack
- [ ] Add support for ofs-delta
- [ ] Add support for include-tag