improve submodule messages / git hooks

A much less intrusive version of #3274 that has effect on checkout / pull / merge, rather than setup.py.  It does require a user install step, because you cannot add active hooks to a repo.