`magit-*-merge' dirty worktree warning

Running git-merge(1) on a dirty worktree might cause data loss [1,2],
so after cleaning up some redundant code, warn before starting a merge.

BTW, patch #3 causes a trivial merge conflict in "magit-key-mode.el"
when combined with the 'cleanup' series [3].

[1] mid:"CALkWK0k6PvSJGaHJ4K2hKGWdGudF0j-0d+DVxK+VE7X4jhSyjA@mail.gmail.com"
[2] https://github.com/praet/magit/commit/e3328625#commitcomment-3798188
[3] https://github.com/magit/magit/pull/748