Update to libgit2 changes

git_branch_list() was replaced with git_branch_foreach()
Added transfer annotations on diff delta getters
Added missing array length parameters on callbacks
Do not allow setting NULL workdir for repository
Use a switch to convert native object to ggit object type
Add ggit_repository_revparse
Added missing transfer annotation on ggit_repository_revparse
Update ggit_repository_set_workdir to latest git2 api
Bind ggit_ref_get_remote_tracking_from_branch
Bind ggit_commit_get_nth_ancestor
Added bindings for git_tree_walk
Fix documentation for error indicating it can be NULL
Make ggit_blob_get_raw_content bindings friendly
Require gio-2.0 in pkg-config file

Without this, app developer will have to explicitly add
`pkg-config --libs gio-2.0` to linker flags.
Generate enum types
Add generated enum files to .gitignore
Fix to build against latest libgit2
Fix branch binding due to once again api breaks in libgit2
Add missing includes
Wrap a branch if the ref is branch in the lookup_reference