add support for turning module changes into a log

Teach `magit-wash-diff` how to use sections for commits in modified
submodules.  This assumes `diff.submodule=log`; `short` submodule diffs
are shown as before.  Also teach `magit-show-commit` how to visit such
module commits.

Unfortunately that means that `git log` has to be run for each modified
submodule, because `git diff` does not print the commit hashes and also
because it omits some commits that it shouldn't omit.  It would therefor
be better to delay inserting and washing the body of the "diff submodule"
section until it is actually expanded.  But *implementing* that has to
be delayed, until the section primitives have been sanitized some more.