Implemented new GitRepository functionality.

I added new constructors, as well as rewrote the repository-creation
logic to take URLs instead of file paths.
The branch property on GitRepository is now read/write.
Added -refresh and isChanged to GitRepository.