Include git2/odb_backend.h in git2.h

Since this isn't under sys/ we need to have it included in the main
git2.h file.

This fixes #2551.
Recurse ignored directories when stashing
Correctly handle getaddrinfo return result

The getaddrinfo function indicates failure with a non-zero return code,
but this code is not necessarily negative. On platforms like Android
where the code is positive, a failed call causes libgit2 to segfault.
global: free the error message when exiting a thread

When we free the global state at thread termination, we must also free
the error message in order not to leak the string once per thread.
When auto follow tags, FETCH_HEAD should list only newly followed tags
config: Fix multiple trailing spaces before comments not completely trimmed
git_filter: dup the filter name
Introduce GIT_ALIGN
Ensure pool data is aligned on an 8 byte boundary
The raw index buffer content is not guaranteed to be aligned

* Ensure alignment by copying the content into a structure on the stack
Fixed merge REUC test for big-endian 64-bit
Fixed odb foreach test failure for big-endian 64-bit
Silence uninitialized warning
Ensure patch is initialized to zero, otherwise, the allocated flag may be set
Silence unused return value warning
Merge pull request #2596 from libgit2/cmn/maint-21

Add a few backports to 0.21 maintenance