magit-with-git-editor-setup: add SERVER-WINDOW argument

This allows displaying a buffer created by 'emacsclient' to be displayed
differently when using this macro as opposed to the default configured
with the `server-window' option.

Also add an option `magit-server-window-for-rebase' which is used by
`magit-interactive-rebase' to set that SERVER-WINDOW.  In a later commit
`magit-server-window-for-commit' will also be added.

At least in the case of `*-for-commit' this is useful because it makes
sense to use e.g. `pop-to-buffer' here, even when one generally prefers
`switch-to-buffer-other-frame'.
remove magit-log-edit.el and rebase-mode.el

Instead use `git-commit-mode.el' and `git-rebase-mode.el'
from https://github.com/magit/git-modes.

* `git-commit-mode' communicates the commit message to git by
  saving the commit message file. `magit-log-edit' used git's
  standard input for this purpose, which is much more fragile.

* `git-rebase-mode' is the new name of the library previously
  known as `rebase-mode'.  It was moved to `git-modes' because
  we start using that anyway and because, like the other files
  there, can be used without magit.

This is been discussed at https://github.com/magit/magit/issues/675.