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 possible missing .git/info path
Introduce PushCommand to manage push operation and options
Merge pull request #124 from Tetradeus/sparse-checkout

Create .git/info path if missing and if performing a sparse checkout
Remove unused JGit PushCommand.timeout field - fix findbugs warning

Most push operations should be quick, so a timeout implementation may
not make much sense for a push.
Extend the README with hints for contributors
Use correct wiki URL in README
Update README.md

Encourage developers to review code coverage results related to their changes
Update README.md