Create initial Local Repo API

Add the following functions:
- Get a single branch, identified by name, from a local repo
- Get a list of all branches from a local repo
- Get the unzipped contents of a git object, identified by it's SHA-1

Add stubs for the following functions:
- Get the commit history for a local repo. Takes the absolute path to
  the local repo, and returns the CommitObject at the root of the git
  tree (well, it's actually an acyclic graph).
- Parse the contents of a commit object file into a CommitObject
  (private)

Make minor updates to model where necessary.