Just to be clear, there are a number of status scenarios that we cannot accurately convey through the `git_status_foreach` callback API - renames are completely broken (since the callback delivers just a single file name) and even simple changes to a submodule are not obvious because it is not obvious that the item being reported is a submodule.

When we looked at changing the callback signature, it became clear that we would have to pass a ton of extra information, and instead of loading up the callback with extra parameters, it seemed easier to just use the `git_status_list` and provide indexed access into an array of results.