Test failure cases deleting branch and tag, and reset with no HEAD
When cloning, next to remote URL, also set fetch refspec.
Added unit test checking for remote fetch refspec in config of cloned repos.
Merge pull request #121 from drvdijk/master

When cloning, next to remote URL, also set fetch refspec.
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
refactored checkout as a GitCommand
Test for trackingSubmodules requires >=1.8.2

Make sure that we have the required version level for tracking submodules.
Added sparse checkout support

Removed method for retrieving sparse checkout paths

Moved sparse checkout method inside Checkout Command
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.
Removed unused method retrieveSparseCheckout
Removed unused noCheckout field since noCheckout behaviour is obvious
Added test coverage for null sparseCheckoutPaths parameter value
Added findbugs NonNull Check for sparseCheckout method
Merge pull request #123 from Tetradeus/sparse-checkout

Support sparse checkout in the git-client API, checkout is now a command (for easier extensions)
Check mkdir return value in tests
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.