[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