Add git::install resource and fix git::clone

Introduces git::install resource which can be used to clone a git
repository and checkout a given commit (or other tree-ish reference). By
default this checkout will be maintained in the specified state.

Also cleans up some features added to git::clone in Iad0c782:
* ensure => absent support is dropped
* Exec["git_pull_${title}"] no longer suppresses output on
  error
* Unless guard for Exec["git_pull_${title}"] updated to work with
  branch tracking
* Git pull for ensure=>latest limited to running once an hour via
  schedule

Change-Id: I6215abca89945009008f8acae15dc4810664c6c5