add Repository#descendant_of?

cc @ymendel @brianmario @vmg 
This is not true, at least not the way you implemented it. `commit` and `ancestor` can be either strings that resolve to OIDs, or any subtype of `Rugged::Object`.