Refcounting
Merge pull request #1622 from yorah/fix/thread-segfault

thread: fix segfault on Windows 64 bits
remote: make default tag retrieving behaviour consistent

Default for newly created remotes will be auto.
Default when loading existing remotes with no tag retrieving behaviour set, was already auto.
Proposal to handle default value (auto = 0)
Build with the system's http-parser installation if available
Frees
Merge pull request #1530 from veeti/http-parser

Build with the system's http-parser installation if available
Merge pull request #1623 from yorah/fix/tag_auto

remote: make default tag retrieving behaviour consistent
Merge pull request #1559 from carlosmn/ref-shorthand

Introduce git_reference_shorthand
Added support for setting transport flags (No check SSL cert) to git_clone call.
Merge pull request #1621 from NHDaly/clone_transport_flags

Added support for setting transport flags (No check SSL cert) to git_clo...
improve test for index extension truncation
Merge pull request #1626 from ethomson/index_ext_truncation

improve test for index extension truncation
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.
Zero memory for major objects before freeing

By zeroing out the memory when we free larger objects (i.e. those
that serve as collections of other data, such as repos, odb, refdb),
I'm hoping that it will be easier for libgit2 bindings to find
errors in their object management code.
Mutex init can fail

It is obviously quite a serious problem if this happens, but mutex
initialization can fail and we should detect it.  It's a bit like
a memory allocation failure, in that you're probably pretty screwed
if this occurs, but at least we'll catch it.
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.