add Repository#descendant_of?

cc @ymendel @brianmario @vmg 
You need to use `rugged_object_get(repo, rb_commit, GIT_OBJ_COMMIT)`, which will return a (parsed) `git_object`. This is not ideal because the ancestor API takes OIDs, but the only way to verify the OID is a commit is to load it.

Personally, I would consider keeping `rugged_oid_get`, as `git_graph_descendant_of` will raise anyway if the given OID doesn't resolve to a commit.