pre-commit: Check submodules staged with other changes
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.

Sprunth/RGG,Sprunth/RGG,Sprunth/RGG,Sprunth/RGG