magit-diff-with-mark: only one argument RANGE

Replace `magit-diff-with-mark's MARKED and COMMIT arguments with just
RANGE, making it consistent with other diff commands.  Keeping these
arguments for non-interactive use would not make sense since the marked
commit is determined inside `interactive'.  Except for that part it
behaves the same ad `magit-diff', the latter should therefor be used
non-interactively.
git-am action --- apply mbox from within magit

This patch defines the git-am action and the `magit-apply-mailbox'
function and binds them to "j".

The existing interactive rebase machinery is extended to handle "git am"
mailbox applications.  Git shares structure between "git rebase" and
"git am", (e.g., they both use the .git/rebase-apply directory) so this
is a natural extension.
Merge branch 'pr/git-am'
trying to take magit-key-mode beyond its limits

This code is completely untested.  After the painful experience of
writing it and also documenting it I had no energy left to test it.

More importantly though I am back to my initial opinion on this subject:
`magit-key-mode.el' is completely insufficient for this purpose and we
should not abuse it like this.  It is a fine library but it has its
limitation, trying to have it do something it was not intended to do
doesn't do it justice.

The comments in this patch are more valuable than the code: they
document or at least hint at the limitations of this library, and
serve as a warning to anyone attempting a similar hack.