submodules: stale module entries

We consider an entry in .gitmodules to mean that we have a submodule at
a particular path, even if HEAD^{tree} and the index do not contain any
reference to it.

We should ignore that submodule entry and simply consider that path to
be a regular directory.

From #2520 

---

Just the test for now. Tracing the code, what happens is that the fs iterator tries to be helpful and considers anything in `.gitmodules` to be a submodule, since it can't see the index. Hower, .gitmodules doesn't tell us *what* is a submodule, just how to map what we know are submodules.

I think that to fix this we'll have to pass the index to the fs iterator so it doesn't have to guess but can know what is a submodule.