Use GTOID instead of SHA strings or git_oid structs

I updated the API everywhere so it takes an GTOID instance instead of an git_oid struct.

I also added methods that return or take a GTOID instead of a SHA string. I think it would be a great idea to remove all the methods that use SHA strings, but I left them in for now.