Make Git source plugin clone submodules recursively
Currently, _GitSourceBase only considers immediate submodules of the superproject. This branch makes its handling of submodules recursive. It adds a new test which checks that fetching and staging nested submodules works, and it also updates documentation to mention this behaviour. Additionally, it contains some minor refactoring and commenting.
This merge request, when approved, will close: #1162 (closed)