Add JaCoCo code coverage reporting
Add tests of addRemoteUrl, getRemoteUrl, and setRemoteUrl methods
Add tests of checkout(String, String) method

Used the git-client-1.6.0 SHA1 in one of the tests and cloned the local
mirror of the git client repo so that a consistent value is available.
Add revList tests - local branch, remote branch, and tag
Add test of deprecated getRemoteUrl(String, String)

Fails on JGit implementation because the JGit implementation returns
an empty string while the CGit implementation returns the expected
value.
Add test of deprecated merge(String) method
Add test of changelog(String, String) method
Fix JGit test_show_revision_for_merge - line ending sanitization

The test_show_revision_for_merge fails on the JGit implementation on
Windows, but runs successfully on Linux. The same test runs
successfully on both JGit and C Git on Windows and Linux.

The difference seems to be in line ending handling in the diff output
from JGit on Windows.  The output includes the \r character in
addition to the \n character.  Rather than attempt to modify the
output of JGit for Windows, this change adapts the test to that output
difference by removing the leading and trailing white space characters
from the file name in the transformed diff output that is created
during test execution.

This does not alter the behavior of the production code.
Merge pull request #58 from MarkEWaite/master-add-deprecated-merge-test

Add test of deprecated merge(String) method
Merge pull request #52 from MarkEWaite/master-coverage

Add JaCoCo code coverage reporting
Merge pull request #54 from MarkEWaite/master-add-checkout-tests

Add tests of checkout(String, String) method
Merge pull request #55 from MarkEWaite/master-add-remoteUrl-tests

Add tests of addRemoteUrl, getRemoteUrl, and setRemoteUrl methods
Merge pull request #57 from MarkEWaite/master-add-deprecated-getRemoteUrl-test

Add test of deprecated getRemoteUrl(String, String)
Merge pull request #59 from MarkEWaite/master-add-changelog-bounded-test

Add test of changelog(String, String) method
Merge pull request #56 from MarkEWaite/master-add-revList-tests

Add revList tests - local branch, remote branch, and tag
[JENKINS-19994] Close files opened by JGit operations

The JGit Repository object opens files and requires that the close()
method on the repository object is called to close the files.

The JGit RevWalk object documentation states that the dispose()
method should be called on the RevWalk object to unlock any resources
it is holding.

The JGit ObjectReader documentation status that its resources should
be released by calling the release() method.

This change is not enough to allow workspace cleanup in all cases, since
there are other cases (outside the JGit implementation) which will cause
files to be kept open in the workspace.  Refer to JENKINS-20585 for one
example.
Add abort() method to ChangelogCommand fluent API

The JGit implementation of changelog calculation opens a JGit
repository object and a RevWalk object to compute the changelog.
Those objects open files.  The execute() method closes those opened
files.  Unfortunately, there is a case in GitSCM which does not call
execute().  The objects go out of scope from that call, but the files
remain open, which prevents the workspace from being deleted on
Windows (and leaks file descriptors).

All ChangelogCommand instances need to either call execute() or
abort() before they go out of scope.
Merge pull request #61 from MarkEWaite/JENKINS-19994-jgit-close-files

[JENKINS-19994] jgit close files
printing localized error message on SSLException since current error message is not enough to determine that there is a ssl problem
Throw GitLockFailedException on repository lock failure

Refs #17, #31