Dirty submodules do not correctly appear in diffs

**:warning: NOT READY TO MERGE :warning:**

@arrbee Looks like the `diff::submodules` tests were written to skip unmodified deltas, which is why we missed the bug with dirty submodule diffs.

Calling `git_submodule_reload_all()` before `check_diff_patches()` seems to fix the failure in the `dirty_submodule` test, but that begs a couple questions:

 1. Why is submodule status cached in the first place?
 1. If the caching is important, when are the appropriate points to automatically reload submodules? It would be unfortunate to put this burden on the caller.

Reloading does _not_ fix the `submod2_index_to_wd` test. Not sure what the right answer is there.