revwalk: remove preallocation of the uninteresting commits

Preallocating two commits doesn't make much sense as leaving allocation
to the first array usage will allocate a sensible size with room for
growth.

This preallocation has also been hiding issues with strict aliasing in
the tests, as we have fairly simple histories and never trigger the
growth.
array: mark the array to grow as volatile

This works around strict aliasing rules letting some versions of
GCC (particularly on RHEL 6) thinking that they can skip updating the
size of the array when calculating the next element's offset.
Merge pull request #2487 from libgit2/cmn/revwalk-no-prealloc

Work around strict aliasing in array growth