add Repository#descendant_of?

cc @ymendel @brianmario @vmg 
*edit* Just verified, `descendant_of` will return a proper error code if the OID is not a commit's, so let's leave this as-is.