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
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)
Merge remote-tracking branch 'upstream/master' into master-tracking-submodules