Fail on unmodified deltas when they're unexpected

**: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()` will fix the failures, 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.