magit-inhibit-save-previous-winconf: new variable
magit-commit-internal: optionally show appropriate diff

When option `magit-expand-staged-on-commit' (to be renamed) is non-nil
and the new optional argument DIFF-FN is non-nil, then use that function
to show the appropriate diff while showing the commit message buffer.

Previously the function `magit-commit-maybe-expand' (remove in this
commit) was used to do that.  Doing it in `magit-commit-internal' is
better because that function has greater control over where which
buffers (commit and diff) are displayed.  To make that possible, also
add the new variable `magit-diff-switch-buffer-function' and use it
in `magit-diff'.

All callers of `magit-commit-internal' have to be adjusted, even
those that do not request a diff to be shown.

In `magit-commit-assert' also continue to optionally show the
appropriate diff, but do so without using `magit-commit-internal'
(that wouldn't work, previously `magit-commit-maybe-expand' was
used).
magit-diff-auto-show: new option
magit-log-maybe-show-{commit,more-entries}: new functions

Create new functions `magit-log-maybe-show-commit' and
`magit-log-maybe-show-more-entries' from code previously
located in `magit-goto-section' and call them from there.
auto diff: add log-oneline type

Enable it by default, matching old behavior.
auto diff: add log-follow type

Do not enable it by default.
auto diff: add log-select type

Enable it by default.
Merge branch 'n/auto-diff' into next