Allow building as Objective-C++

Under C++, the libgit2 enums are their own non-integral type that cannot
be used as an underlying representation in an enum definition themselves.
Merge branches 'update-libgit2' and 'objective_cpp' into gitx