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
Changed git client dependency version with the released one 1.6.6
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
Merge pull request #214 from dbroady1/trackingSubmodules

Add tracking submodules option
[maven-release-plugin] prepare release git-2.2.0
[maven-release-plugin] prepare for next development iteration