Add several legacy API tests
Update credentials plugin to 1.9
Test fetch and clone with credentials

Places repository URL, private key, and user name information outside
the repository so that the test private keys and repository URLs do not
need to be shared in the public repository.  That allows testing with
real repositories (like github and bitbucket) and real private keys
(like mine).

Uses a parameterized test which generates test parameters
by reading from ~/.ssh/auth-data/repos.csv.  In addition
to the repos.csv file contents, the test always uses the
https://github.com/jenkinsci/git-client-plugin.git repository for a test.

JGit version of this test does not exist yet.
Assert more conditions in authentication tests, prep for JGit test

There is still an open problem in the fetch_() test case for JGit.
It does not checkout the files, so the assertion for the existence
of the expected README.md file fails.  

That assertion is temporarily disabled.  It will be enabled once
the issue is understood and resolved.
Add JGit credentials test
Create a separate CONTRIBUTING file per recent suggestions
Use the correct link to the CONTRIBUTING file
Add getRemoteTagNames API entry point

From Niklaus Giger
Remove overhead from the credentials test

The isRemoteURL() method is not helpful enough for test performance to waste space or thought
on making it more accurate.  It ignored git@hostname URLs which may be local or remote and the
use of that method didn't seem to dramatically improve test performance.
Add test of a deprecated clone method
Adapt test of deprecated clone(RemoteConfig) for jgit/cli git difference
Only test deprecated clone(RemoteConfig) with CliGit

The JGit implementation reports "unknown object".  Since the method is
deprecated, it won't get much attention.
Check that fetch and clone both use the fetch command

The logging listener allows additional assertions later
Remove debugging println from test
[Fix JENKINS-22706] Warn Windows users if TEMP or TMP value contains embedded space

Some msysgit internal credentials operations fail with a message that
"C:\Program" is not a valid path if the TEMP or TMP directory name
contains an embedded space.

This warning is intended to help the user diagnose and repair their
configuration error.
Add code formatting commentary to CONTRIBUTING file
Improve diagnostic message in credentials test
[Fix JENKINS-23299] tag based builds run at every poll

When a build is defined to use a tag, the "check for changes" uses
ls-remote to compare the SHA1 of the remote tag to the SHA1 of the HEAD
of the working directory.  The tag SHA1 is not always the same as the
commit SHA1 (annotated tags), so when that happens, the ls-remote based
"check for changes" can never be satisfied.

This change adapts the tag specific check for changes to use a syntax
which returns the SHA1 of the commit referenced by the tag rather than
the SHA1 of the tag.

JGit always returns the SHA1 of the commit referenced by a tag (a
"peeled" object), while CliGit returns a "peeled" object for tags only
if the refs/tags/tag_name syntax is used.

That difference is maintained for behavioral compatibility for users
of CliGit. Cases where returning the SHA1 of the tag would be better
than returning the SHA1 of the commit referenced by the tag seem rare,
but better to retain CliGit compatibility than risk surprising users in
some as yet undetected use case.
[maven-release-plugin] prepare release git-client-1.10.2
[maven-release-plugin] prepare for next development iteration