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.
Could `FileState` implement `Show` to not duplicate this match statement?