First pass at a repository class.
Add repository branch/commit. Remove repository key.
Add a repository factory to manage multiple types of repositories.
Merge pull request #36 from Impromptu/repository-class

Add an API to allow repositories to be registered and managed