Add SmartCredentialsProvider test

An early attempt to more deeply test authentication
and credentials in the plugin.
Add CredentialsProviderImpl test, refactor existing test for some reuse
Add git version parsing test for git 2.0.0 as seen in Debian testing
Test to confirm JENKINS-23424 is a bug in our JGit implementation

JENKINS-23424 reports that a tracked file which is locally modified is
not reset to its original content on the next checkout when using our
JGit implementation.  It is reset to its original content when using
our command line git implementation.
Add test of two arg setAuthor and setCommitter
Update to ssh-credentials 1.7.1
Update to apache httpclient 4.3.4
Update to JGit 3.4.1
Confirm that JGit 3.4.1 [Fixed JENKINS-23424]

Prior to JGit 3.4.1, tracked files which were locally modified were
not reset to their unmodified state by JGit checkout, while the CliGit
arguments used in the same cases would reset the locally modified file
to their unmodified state.
Add test of credentials item clear method
Ignore Netbeans local configuration file
Update severl maven properties so that 'mvn site' succeeds

The parent pom provides outdated versions of the dependency plugin,
the enforcer plugin, the project-info-reports plugin, and the site
plugin.  This overrides those outdated versions with the most current
versions, along with a big comment that will remind us to remove the
override if the parent ever updates to newer versions.
Add functionality for managing refs through the GitClient interface.

It mimics the functionality available for git tags: creation, existence-testing,
deletion, and lookup. It also mimics the behavior: names have spaces replaced
with underscores, creation and update are combined into a single forced
operation, and refs will refer to HEAD.

Unlike tags, refs are bare-boned, and do not include any attached message.
Update findbugs jsr305 dependency to latest (3.0.0)
Add latest Debian Testing git version string

String is "git version 2.0.1"
Handle git version string from msysgit as special case
[Fixed JENKINS-21806] Improve ssh.exe finding on Windows with msysgit

Adapt to msysgit installed in non-default locations, and to msysgit
alternative configurations as allowed by the msysgit installer.  The
mssygit installer allows the user to choose to make no changes to the
PATH, or to add the "cmd" directory to the PATH, or add the "bin"
directory to the PATH.

If the user chooses to make no changes to the PATH, then they
configure their Jenkins git with the absolute path of the git
executable.

If the user chooses to add the "cmd" directory to the PATH, then they
configure their Jenkins git with the executable as "git", "git.exe",
or (with some msysgit versions) "git.cmd".

If the user chooses to add the "bin" directory to the PATH, then they
configure similarly to the "cmd" directory case.

The plugin attempts to handle all those cases correctly.

Special thanks to Thiago Zanetti for providing the original code for
this fix.
[maven-release-plugin] prepare release git-client-1.9.2
[maven-release-plugin] prepare for next development iteration
Fixed ambiguous ls-remote with refs/heads/...

This is the smallest possible change to solve the
issue of CI builds being triggered again and again.
ls-remote will always be definite when "refs/heads/<branchName>"
is used as branchSpec.

All other issues tried to solve with Pull Request
https://github.com/jenkinsci/git-client-plugin/pull/129
are still open. But using refs/heads/ would already solve
the CI issue.