Unlimited sudmodule's nesting for git provider
Whitespace
fix git provider checkout of a remote ref on an existing repo

Per discussion of https://github.com/puppetlabs/puppetlabs-vcsrepo/issues/51 in
the git channel on freenode, EugeneKay <eugene@kashpureff.org> stated that `git
rev-parse` is not capable of inspecting remote refs but that `git ls-remote`
is.  This patch makes a second attempt to resolve the ref with `ls-remote` if
`rev-parse` fails.

The git provider also appears to support several type features that are not
tagged under `has_features`.  It's not clear if this is the best way to resolve
this issue or if the provider should be refactored to work with different type
features.

Demonstration of the problem with changing refs (branches and tags)

    $ git --version
    git version 1.7.1
    $ cat master.pp branch.pp
      vcsrepo { '/tmp/vcsrepo':
        ensure    => present,
        provider  => git,
        source    => 'https://github.com/puppetlabs/puppetlabs-vcsrepo.git',
        revision  => 'master',
      }
      vcsrepo { '/tmp/vcsrepo':
        ensure    => present,
        provider  => git,
        source    => 'https://github.com/puppetlabs/puppetlabs-vcsrepo.git',
        revision  => 'feature/cvs',
      }
    $ puppet apply --modulepath=`pwd`/.. master.pp
    Notice: /Stage[main]//Vcsrepo[/tmp/vcsrepo]/ensure: Creating repository from present
    Notice: /Stage[main]//Vcsrepo[/tmp/vcsrepo]/ensure: created
    Notice: Finished catalog run in 2.19 seconds
    $ puppet apply --modulepath=`pwd`/.. branch.pp
    Error: /Stage[main]//Vcsrepo[/tmp/vcsrepo]: Could not evaluate: Execution of '/usr/bin/git rev-parse feature/cvs' returned 128: fatal: ambiguous argument 'feature/cvs': unknown revision or path not in the working tree.
    Use '--' to separate paths from revisions
    feature/cvs

    Notice: Finished catalog run in 1.69 seconds
Merge pull request #78 from jhoblitt/git_provider_checkout_remote_refs

fix git provider checkout of a remote ref on an existing repo
Merge pull request #46 from Paulche/master

Enable unlimited nesting for submodule updating
Use git checkout --force instead of short -f everywhere
Adding svn configuration parameter, and docs
Merge pull request #81 from sepulworld/svn-configurtation-parameter

Adding svn configuration parameter, and docs
Allow for setting the CVS_RSH environment variable
Merge pull request #82 from webfactory/issue-10791

Allow for setting the CVS_RSH environment variable
Whitespace
Whitespace
Add support for master svn repositories

Pull request related to issue #8331.
I have added support into the exists? method (actually working_copy_exists?) for checking if the path is a master repository, using svnlook. It should be ok in most cases, since svnlook comes with svnadmin in nearly every distribution.
Style and comments
Merge pull request #83 from sodabrew/issue_8331_svnlook

Add support for master svn repositories
Style adjustment