libgit2: fix double-free
libgit2: use set_ob() instead of wrap_odb() for a custom backend

The purpose of git_repository_warp_odb() is not to use a repository with
a custom odb backend, but to access an odb via functions which want a
repository object. A repository build this way has no path, no refs db,
no configuration, no worktree, etc. It is useless unless you're
e.g. trying to extract information out of a packfile via
git_object_lookup() and friends.

In order to have an otherwise "normal" repository but use a custom
backend for the objects, you need to open/init the repository as you
usually do and then set the custom odb.
libgit2: use peel() in the pygit2 example

get_object() is deprecated, and we now have the common peeling mechanism
which we can use to get to the commit more elegantly.
Merge pull request #24 from madhead/libgit2_fixes

Libgit2 fixes
Translate appendix A - Git + Zsh