Submodules are more @arrbee 's thing, but I'll try go give some guidance on this.

We need to support the old method of storing the git-dir under the worktree for older git versions, but most tools should use the gitlink versions when creating new ones.

The old version is fairly straightforward to clone. For the new version, we would probably need to use `git_clone_into()`. I'm not sure if this is currently exposed in libgit2sharp.