Use BuildChooserContext environment in InverseBuildChooser

Fixes an issue introduced by 4fc7f4447c990082e8322c42ebafd1f33a2e60aa.

When polling git for changes, context.getBuild() returns null, manifesting in an NPE from  InverseBuildChooser.getCandidateRevisions() when polling a git repo and using an Inverse branch choosing strategy.

This was fixed for DefaultBuildChooser in 68331baf78649becac426b9362534faff08cf618--BuildChooserContext now includes the appropriate environment, so there is no longer any need to call context.getBuild().getEnvironment() as demonstrated in [DefaultBuildChooser.java](https://github.com/jenkinsci/git-plugin/commit/68331baf78649becac426b9362534faff08cf618#diff-59b21aee0282fdafd62036844373a19cL190).
Enable use of trackingSubmodules

trackingSubmodules were introduced in v1.8.2 of GIT as a way to always
track the tip of the branch you are interested in for a submodule.  This
is turned on via the --remote switch to 'git submodule update'.  This
allows you to always stay up to date (--remote) or to just use the
specific SHA-1 you last downloaded (no --remote).

So, we now surface this new feature in the UI.  It requires corresponding
changes to the git-client-plugin (Pull request 122) for this to compile.
Use SubmoduleUpdateCommand

The SubmoduleUpdateCommand pattern allows for easier understanding of what each
of the parameters means.
Added sparse checkout option
Fixed Checkout command to act as the previous checkoutBranch method
Fix for JENKINS-22342

Only normalize with slash certain repository types.
Should match behaviour prior to
7abfafcf58addbce2c268dbfed1910a90d4fe2a3
Changed git client dependency version with the released one 1.6.6
Add tests for gitweb repo broswer

Add tests for gitweb, which include cover for JENKINS-22342
Document and improve test for building a sha1 rev

The 'branch to build' option already also accepts a SHA1-hash to specify
the specific revision to build, but this was not really obvious (neither
in the online help nor in the code). Added a note to the documentation and
a test which covers part of this functionality more explicitly, though part
of this still happens in GitSCM which isn't really under test.

See also JENKINS-22278
Merge pull request #219 from raboof/master

Document and improve test for building a sha1 rev
filterTipBranches: Use O(n) instead of O(n^2) algorithm.

Fixes JENKINS-5724.

Before, this made slaves run on 100% CPU for days when idle.

This makes it a few thousand times faster for a repo with 500 branches.
Merge pull request #156 from nh2/fix-filterTipBranches-performance

filterTipBranches: Use O(n) instead of O(n^2) algorithm.
Merge pull request #215 from Tetradeus/sparse-checkout

Added sparse checkout option
Update to JGit 3.3.0 and other more recent versions

This intentionally updates to JGit 3.3.0 even though JGit 3.3.1 is now
available.  The git-client-plugin still uses 3.3.0 and the git-plugin
should not depend on a newer version than the git-client-plugin.

Once the git-client-plugin updates to 3.3.1, git-plugin may update also.
[maven-release-plugin] prepare release git-2.1.0
[maven-release-plugin] prepare for next development iteration
Remove outdated dotm2_settings.xml file at root

Jenkins infrastructure has improved since 5 years ago
Add test for refs/head BranchSpec
Use JGit 3.3.1 and git-client 1.8.0
Fix javadoc warnings