This refs iterator pleases the gods.
Liike this
What are the chances, really
...Aaaand this works
Refcounting
Frees
Make iterators use GIT_ITEROVER & smart advance

1. internal iterators now return GIT_ITEROVER when you go past the
   last item in the iteration.
2. git_iterator_advance will "advance" to the first item in the
   iteration if it is called immediately after creating the
   iterator, which allows a simpler idiom for basic iteration.
3. if git_iterator_advance encounters an error reading data (e.g.
   a missing tree or an unreadable file), it returns the error
   but also attempts to advance past the invalid data to prevent
   an infinite loop.

Updated all tests and internal usage of iterators to account for
these new behaviors.
Merge pull request #1627 from arrbee/iterator-api-improvements

Make iterators use GIT_ITEROVER & smart advance
Make git_index_read_tree preserve stat cache

Instead of just blowing away the stat cache data when loading a
new tree into the index, this checks if each loaded item has a
corresponding existing item with the same OID and if so, copies
the stat data from the old item to the new one so it will not be
blown away.
Merge pull request #1630 from arrbee/index-read-tree-preserve-stat-cache

Make git_index_read_tree preserve stat cache where possible
Don't bail on parsing commits with an invalid timezone

git doesn't do that, and it's not something that's usually
actionable to fix. if you have a git repository with one bad
timezone in the history, it's too late to change it most likely.
Merge pull request #1631 from scottjg/fix-timezone-parsing

Don't bail on parsing commits with an invalid timezone
Merge pull request #1624 from libgit2/vmg/full-ref-iterator

Breaking RefDB changes