(#11798) Fix git checkout of revisions

The git provider had some problems checking out SHA1s - it couldn't.
And what's worse, it lied about what it was doing saying that it did
checkout the SHA1.

There was also a bug where if you specified a different branch than you
were on, it was doing a `reset --hard` to the specified branch.  For
example, if master was checked out, and you set "revision => stable", it
would `git reset --hard stable` on the master branch instead of just
checking out stable.  Maybe the original author did this to get around
being unable to checkout when you had local changes, but the --force
flag to checkout will fix that.

With this change, you should now be able to specify a branch, tag, or
SHA1 in the revision attribute and have it work.
Merge pull request #17 from mmrobins/ticket/master/11798_fix_sha1_revision

(#11798) Fix git checkout of revisions
don't recreate bare repo if it exists already (fixes #12303)
Make Puppet DSL compliant with the style guides and puppet lint.
Merge pull request #19 from adamgibbins/master

Improved Puppet DSL style as per the guidelines.
Merge remote-tracking branch 'upstream/master'
add begin/except for hg pull (mercurial 2.1 returns 1 for hg pull when no changes are found; this change gets reverted in mercurial 2.1.1)
(#13062) Added clarification that 'revision' can also be used for branches.
Merge branch 'patch-1'

* patch-1:
  (#13062) Added clarification that 'revision' can also be used for branches.
Fix failing hg provider spec caused by refactoring in commit f1120f2d9b121097b7e77709328144af330d0b34
Merge pull request #23 from jmchilton/d69a27f3bb5111822e1065f385a53b6ee99cb16a

Fix failing hg provider spec
Merge pull request #18 from andihit/master

don't recreate bare repo if it exists already - fixes http://projects.puppetlabs.com/issues/12303
Add the ability to specify a git remote

Rather than fill the git provider with hard-coded references to
origin, it would be better to abstract out which remote the resource
is fetching from.  But since this is only relevant to decentralized
version-control systems, a multiple_remotes feature was added for
the parameter to depend on.  So far this is only implemented for git
remotes, but it could be implemented for other VCSs as well.
Merge pull request #24 from jesusaurus/feature/git

Add the ability to specify a git remote
Run git operations as a specific user (puppetlabs ticket 4773), added ssh options to ensure no prompting (also fixed in pull request #1 by riseuplabs), added ability to keep repository up to date with latest (puppetlabs ticket 11278)
Merge pull request #25 from ejhayes/master

Checkout git repository as user, fixed ensure latest, ssh options
Add default user to run git as.

  Add a default to the user parameter of root, which is the user that
  the git commands would have ran in previously versions of this module.

  Without this an upgrade to the lastest release would cause syntax
  error all over a person's code base and provide no benefit.
Removes trailing whitespace
Adds comma to last attribute to comply with style
0.1.0 Release

This commit prepares the Modulefile for a 0.1.0 Release.

This release is a bug fix and feature release. It includes general
fixes, puppet-lint compliance, adds the ability to specify a git
remote and allows git operations to run as a specific user.

Contributions came from Matt Robinson, Andreas Gerstmayr,
Adam Gibbins, Nick Jackson, John Chilton & Jesusaurus.