Give a group-based name to magic-key buffers

* magit-key-mode.el: Give a specific name to magic-key buffers according to group used.
(magit-key-mode-buf-name): Now a format string.
(magit-key-mode-last-buffer): New internal var.
(magit-key-mode): Create a new buffer name specifying the group in use.
(magit-key-mode-kill-buffer): Kill magit-key-mode-last-buffer.
Remove a defvar declaration

* magit-key-mode.el (magit-log-mode-window-conf): Remove one defvar declaration which is already defined at top level.
New command magit-run-git-gui-blame
Configurable magit-get-top-dir starting point symlink expansion

By disabling expansion, one can restore the behaviour before commit
449bebe7571bd4dc0fda4abcaffc5563d1dbe60c, which according to Alex was added
to handle cases where one has symlinks from outside of a repository to inside
of a repository and uses magit-status with a path that contains such a
symlink.
Don't refresh dead buffers
Pass --cleanup=strip to `git commit'
Don't duplicate commit messages when applying commits

Either commit 9a09235a0781715461ac4cf0c3eba38e84fda15a didn't consider
that also magit-apply-commit appended commit or revert message into the
log edit buffer or perhaps cherry-pick and revert with --no-commit didn't
leave .git/MERGE_MSG behind with older git versions?  Either way, relying
solely on .git/MERGE_MSG seems like the way to go; not only we avoid
message duplicates but while log edit buffer is lost if
magit-log-edit-cancel-log-message is used or Emacs is restarted, for
example, .git/MERGE_MSG stays.
Prevent Cygwin dll from expanding wildcards when git is not run via shell.
magit-commit-for-autosquash: new command