Add Repository.merge_commits()

This allows you to merge arbitrary commits, returning an index, which is
useful when dealing with bare repos in which we want to merge.
Repository: allow passing a favor option to merge_commits

I've gone with taking a string and converting it because the depth of
the namespacing in the libgit2 name is rather large and we don't care
about the global namespace that C has; and this also lets us pass the
same as the '-X' option to git-merge.
Merge remote-tracking branch 'carlos/merge-commits'