split off the support for environment variable overrides
eliminated pointless local variable
ignoring an error like this is harmful
Split off PruneStaleBranch from GitSCM
Adding GitSCM to all callbacks as context parameter
simplification
don't swallow InterruptedException.

It is a signal from the users to abort the build.
Swallowing an exception is harmful

This prevent users from noticing a problem.
As we'll print the exception, ex.getMessage() is pointless
Simplification

Not sure why the it's doing git-fetch right after git-clone, but I'm keeping that semantics intact (perhaps it's populating some data structure for the future build?)
Simplification
parameter reduction
What does this really do?
Simplifying by using remotable GitClient
Added a new hook for GitSCMExtension to tweak GitClient

This is a better way to set commiter/author than environment variables, as JGit fundamentally doesn't care about the environment variables.
Configure author/committer more reliably