Repo commits

The long awaited commit with `repo/commits` API.
The API is different than `git/commit` in having more detailed information about the commit itself - for example lists of files, and authors etc.

The tests are a bit verbose. I've tested against the example jsons from the github api page, but that saved me from overlooking a field or two when updating the structs. 

I've also moved this code to the new style that we've started using in the lib recently (pointers everywhere).
I skipped the URL fields as we did before, though not sure if maybe for the "compare commits" case the URL may be helpful - they're for patches etc.

Looking forward to your comments guys :)