Allow tracking submodules.

Git>=1.8.2 allows the ability for submodules to track the tip of a branch
versus using just a single SHA-1 for the submodule, and this commit allows
that for the CliGitAPIImpl.  JGitAPIImpl just gets a "not implemented".
Test case for updating a tracking submodule
Test for trackingSubmodules requires >=1.8.2

Make sure that we have the required version level for tracking submodules.
Only add --remote if git is >= 1.8.2

git submodule update --remote will only work for versions of git >= 1.8.2.
So, force check it here.  If it's not the version expected, then we won't
be able to do the update properly and the using project will have to update
the SHA-1 in it's .git/config for this module to get the latest changes.  So,
basically, if not 1.8.2, default back to original behaviour.
Allow tracking submodules.

Git>=1.8.2 allows the ability for submodules to track the tip of a branch
versus using just a single SHA-1 for the submodule, and this commit allows
that for the CliGitAPIImpl.  JGitAPIImpl just gets a "not implemented".
Test case for updating a tracking submodule
Test for trackingSubmodules requires >=1.8.2

Make sure that we have the required version level for tracking submodules.
Only add --remote if git is >= 1.8.2

git submodule update --remote will only work for versions of git >= 1.8.2.
So, force check it here.  If it's not the version expected, then we won't
be able to do the update properly and the using project will have to update
the SHA-1 in it's .git/config for this module to get the latest changes.  So,
basically, if not 1.8.2, default back to original behaviour.
New SubmoduleUpdateCommand, like CheckoutCommand
Merge branch 'trackingSubmodules' of https://github.com/dbroady1/git-client-plugin into trackingSubmodules

Conflicts:
	src/main/java/org/jenkinsci/plugins/gitclient/CliGitAPIImpl.java
	src/main/java/org/jenkinsci/plugins/gitclient/GitClient.java
	src/main/java/org/jenkinsci/plugins/gitclient/JGitAPIImpl.java
	src/main/java/org/jenkinsci/plugins/gitclient/RemoteGitImpl.java
Fix comment, per Mark's suggestion.
Changed init with init command + replaced jgit init with cli init for cligitapi
Fix the version check with msysgit

With v1.9.0, msysgit put the packaging info like  1.9.0.msysgit.0, instead
of 1.9.0.0.msysgit.0, like I expected.  Now, we'll make it work, even if
they do something like 2.msysgit.0 or 2.0.msysgit.234.asdf.
Added bare init option
Make formatting match rest of file
Make isAtLeastVersion package visible

Make isAtLeastVersion package visible so that it can be tested properly.  To
test this method properly, we need a new method (computeGitVersion) to force
the internal Git version to test various different versions.  Inspiration by
MarkEWaite/git-client-plugin/13879a5.

Also, since isAtLeastVersion is now package visible, we can get rid of the
copy of version code in GitAPITestCase and use this method.
Make sure we test correctly we are >=1.8.2

During refactor of last commit, I missed the logical test.  This fixes it.
Changed abstract class CheckoutCommand to an interface
Merge pull request #125 from Tetradeus/sparse-checkout

Changed abstract class CheckoutCommand to an interface
[maven-release-plugin] prepare release git-client-1.6.6