Test clone from bare repo, referencing a working directory

Reported on the Jenkins mailing list, fixed by
b6473d636f9f8f00f954ef294cfd5ed296b6a738
Merge pull request #78 from MarkEWaite/master-add-referenced-working-dir-in-clone

Test clone from bare repo, referencing a working directory
Add test that working directory is as expected for test success

Some of the GitAPITestCase tests need to copy a git repository.  This
test asserts that a git repository is available directly in the
expected location in the working directory of the build.

Also adds a test of a rev-parse exception case
Merge pull request #79 from MarkEWaite/master-add-SRC_DIR-location-test

Add test that working directory is as expected for test success
Fix reference repositories on Windows.

Windows git did not look-up the alternative object directory if the
alternates file ended with \n, this patch simply changes println to
print for that file. That fixed all my issues with alternates.
Add test of deprecated mergeBase method
Require exact match of alternates content

The content of the alternates file (used for reference repositories)
is required to have a precise format on Windows (forward slash
separator and no trailing end of line character).  This test asserts
the alternates file contents are exactly as required, without any
trimming of leading or trailing whitespace.
Merge pull request #80 from tru/fix_alternates_windows

Fix reference repositories on Windows.
Merge pull request #81 from MarkEWaite/master-add-mergeBase-test

Add test of deprecated mergeBase method
Update to JGit 3.2.0
Merge pull request #84 from MarkEWaite/master-new-JGit-version

Update to JGit 3.2.0
Fix JGit getDefaultRemote (deprecated) implementation to match CliGit

Added several tests in the deprecated test methods to assure the
implementations are consistent with one another.

There is a variation between CliGitAPIImpl and JGitAPIImpl ordering
which is handled in the case where more than one remote is defined.
The javadoc for the CliGitAPIImpl says that it returns the first
remote defined, though it seems to actually return the last remote
defined.  The JGitAPIImpl returns the first remote defined so that
it is consistent with the javadoc.
Merge pull request #85 from MarkEWaite/master-fix-JGit-getDefaultRemote

Fix JGit getDefaultRemote (deprecated) implementation to match CliGit
Update dependencies, except Google guava

Updating the Google guava dependency to the latest version (16.0) from
the current version (r9) is a multi-year step in versions and breaks
tests.
Merge pull request #86 from MarkEWaite/master-update-dependencies

Update dependencies, except Google guava
Update guava to 11.0.1 - match the version used by git-plugin

The latest guava version (16.0) causes test failures, so cannot be
used yet.  This version is consistent with the version used by
git-plugin which may avoid silent incompatibilities between the two
plugins.
Fix CliGitAPIImpl.getHeadRev bug - returned same SHA1 for all refs

The getHeadRev(url) implementation in CliGitAPIImpl returned the same
SHA1 for all refs, even though the refs had different SHA1 values in
the output.
Merge pull request #88 from MarkEWaite/master-fix-CliGit-getHeadRev

Fix CliGitAPIImpl.getHeadRev bug - returned same SHA1 for all refs
[FIXED JENKINS-21030]
look for ssh.exe next to known git.exe
Merge pull request #91 from wannessels/master

[FIXED JENKINS-21030]