magit-commit-fallback: use with-editor-finish-noclient-hook

instead of `git-commit-commit-hook', which no longer exists
and was replaced by the former.
magit-commit-log-buffer: check whether magit-commit-mode is non-nil

Previously we checked whether the `major-mode' derived from
`git-commit-mode', but since that is a minor mode now, we
have to instead check whether the variable is non-nil.
magit-server-visit: use for commit and rebase

Generalize `magit-server-visit' and use it when rebasing, not only when
committing.  Add a function and a variable `magit-server-visit-args'.
Together this variable and these two functions handle all of the
"asynchronous argument passing logic" related to the use of the
Emacsclient.  And yes, I normally would not do that but here I
see no other way.  Remove `magit-commit-amending-alist'.
magit-diff-while-committing: improve amend detection

When Magit directly invoked `git commit', then we do know whether we
are creating a new commit or amending.  When `git commit' is invoked
by e.g. `git rebase -i' then we don't, so we have to try harder to
guess what is going on.
Merge branch 'n/with-editor-2' into next