refactored checkout as a GitCommand
Added sparse checkout support

Removed method for retrieving sparse checkout paths

Moved sparse checkout method inside Checkout Command
Removed unused method retrieveSparseCheckout
Revert "Test case for updating a tracking submodule"

This reverts commit bf4c5739869d948af7ef6b4818487b89a9209274.
Revert "Allow tracking submodules."

This reverts commit 9f11b70118f50ad8b1324abe34a53a750cefe49a.
Merge branch 'master-add-sparse-checkout' into master-work