pack: introduce a streaming API for raw objects

This allows us to take objects from the packfile as a stream instead
of having to keep it all in memory.
indexer: use the packfile streaming API

The new API allows us to read the object bit by bit from the packfile,
instead of needing it all at once in the packfile. This also allows us
to hash the object as it comes in from the network instead of having
to try to read it all and failing repeatedly for larger objects.

This is only the first step, but it already shows huge improvements
when dealing with objects over a few megabytes in size. It reduces the
memory needs in some cases, but delta objects still need to be
completely in memory and the old inefficent method is still used for
that.
indexer: make use of streaming also for deltas

Up to now, deltas needed to be enterily in the packfile, and we tried
to decompress then in their entirety over and over again.

Adjust the logic so we read them as they come, just as we do for full
objects. This also allows us to simplify the logic and have less
nested code. The delta resolving phase still needs to decompress the
whole object into memory, as there is not yet any streaming
delta-apply support, but it helps in speeding up the downloading
process and reduces the amount of memory allocations we need to do.
indexer: correctly deal with objects larger than the window size

A mmap-window is not guaranteed to give you the whole object, but the
indexer currently assumes so.

Loop asking for more data until we've successfully CRC'd all of the
packed data.
Add version fields and init macros for public input structs.
Cleanup nitpicky things
Deploy GIT_CHECKOUT_OPTS_INIT
Deploy git_config_backend version
Deploy GIT_DIFF_OPTIONS_INIT
Deploy GIT_DIFF_FIND_OPTIONS_INIT
Deploy versioned git_odb_backend structure
Deploy GIT_REMOTE_CALLBACKS_INIT
Deploy GIT_REPOSITORY_INIT_OPTIONS_INIT
Deploy GIT_STATUS_OPTIONS_INIT
Deploy versioned git_transport structure
Deploy GIT_SIGNATURE_INIT
Deploy GITERR_CHECK_VERSION
delta-apply: add git__delta_read_header
Deploy GIT_INIT_STRUCTURE
Make constant name all-caps