pre-commit: Check submodules staged with other changes
Since Git does not automatically update submodule checkouts when checking out a new version in the work tree, it is common to have locally modified submodule references. Therefore it is easy to stage such modifications with other changes by accident, especially with commands like "git add -u" or "git commit -a". The result is almost always wrong if the submodule change is not intended. Prevent such mistakes by requiring an extra step to commit submodule link updates with other changes. When this case is detected, print a message describing the situation and provide cut-and-paste instructions to proceed.