Add git repo support for puppet config

* add basic git support
* add a dispatching 'update' method
* change recipe .rsync calls to use .update