use external git-commit-mode.el by default

Use external `git-commit-mode.el' to edit commit messages if it is
available instead of the built-in `magit-log-edit.el'.  The former does
not send the commit message to git's standart input, which is a rather
fragile thing to do.

For the time being, if `git-commit-mode' cannot be found `magit-log-edit'
is loaded instead.  However except for a `require' form there are no
traces of `magit-log-edit' left in `magit.el'.  Instead some functions
defined in `magit.el' are redefined in `magit-log-edit.el' to restore
the original versions from before this commit.  This reduces the
overhead resulting from temporarily supporting two modes *a lot*.

`magit-log-edit.el' will be removed eventually.  I think keeping it for
a while because the maintenance overhead is minimal, the way it is done
here.

`magit-commit' which is an approximate replacement for `magit-log-edit'
drops some "would you like fries with that" style questions present in
the latter.