Add puppet::config_version and puppet::config_version::git

This PR adds `puppet::config_version` and `puppet::config_version::git` to modify the way Puppet diplays the config version in runs.

`puppet::config_version::git` is a useful wrapper to deploy a premade script displaying the environment used, the short git hash, and whether the copy has unstaged changes.

Example output with `puppet agent -t`:

    info: Applying configuration version 'rpinson/7a3ac88 [+]'