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 was discussed at https://github.com/magit/magit/issues/675.
Makefile: declare EFLAGS before we use it

Not strictly necessary, but it's always better to be explicit.

Signed-off-by: Pieter Praet <pieter@praet.org>
Makefile: move .PHONY declarations next to their targets

This allows us to see at a glance which targets were forgotten.

"melpa" and "melpa-push" didn't have any corresponding targets,
so they were removed.

Signed-off-by: Pieter Praet <pieter@praet.org>
Makefile: explicitly declare phony targets phony

Every target that doesn't create a file with the same name should
be explicitly declared phony.  Otherwise we might unintentionally
DoS targets.

  $ touch help
  $ make help
  make: `help' is up to date.

Signed-off-by: Pieter Praet <pieter@praet.org>
Makefile: 'clean': don't try to remove 'magit.spec'

We no longer generate it ourselves since commit afb15b75, so if
it's there, it means a packager put it there for a good reason.

Signed-off-by: Pieter Praet <pieter@praet.org>
Makefile: 'clean': only remove 'magit.info' if we're not in a git repo

Don't break the docs for those who run Magit directly from the git checkout.

Signed-off-by: Pieter Praet <pieter@praet.org>
Makefile: s/rm -[rf]+/$(RM)/g

As suggested [1] by Ramkumar Ramachandra <artagnon@gmail.com>.

[1] mid:"CALkWK0kVQG5LsW8HTRPg4TaV9EmC_wwrLgS2WZiKS9Rqd7OO8A@mail.gmail.com"

Signed-off-by: Pieter Praet <pieter@praet.org>
Makefile: restore 'magit-pkg.el' target

And depend on `cl-lib'.

Pieter Praet pointed out I removed that target in afb15b75 even though
I intended to keep as it is needed for the Marmalade tarball.

Someone else (github is currently down) pointed out that we need to
depend on `cl-lib'.  Therefore we also need that file for the Melpa
package.
Merge branch 'makefile'
Merge branch 'makefile' into outsource
add git-{commit,rebase}-mode as dependencies
Merge branch 'outsource'
check in magit-pkg.el (kludge)

This is a kludge.  Running Magit from Git, packaging for Marmalade,
and packaging for Melpa impose conflicting requirements on this file.

I will deal with this when generating the next release.

Also fix line wrapping.