Git source

WIP

- [x] Use master by default of a git repo if no ref/tag/branch given
- [x] Use a specified tag
- [x] Use a specified branch
- [x] Use a specified ref
- [ ] If ref is not latest commit on master, `henson update` should reset to master
- [ ] If ref does not match Puppetfile, should reset to ref
- [ ] Should not require a dummy version in Puppetfile parser

/cc @rodjek