Add rudimentary support for git_status

Adds in all of the structs necessary for interacting with git status entries,
Adds a Repository::statuses method to return a list of RepoStatus objects.
This function is performing quite a large amount of logic, would it be possible to break this apart? In general the design I've been going towards is to have each Rust function correspond as closely as possible to precisely one libgit2 function. I've ended up just mirroring most of the API in various places, and perhaps it could be done here as well?