GitDownloadStrategy: split #fetch into several methods
GitDownloadStrategy: split up submodule update and checkout
GitDownloadStrategy: extract checkout from #stage