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.
customizable default action and flags for commands

Introduces the magit-command-defaults customization variable which
allows users to specify default flags for the pop-up command interface
and/or default actions to run without raising the pop-up command
interface at all.

See the documentation of magit-command-defaults for full usage
information.  The default value of magit-command-defaults adds this
"--graph" flag to the logging command, this kludge was originally
hard-coded into the magit-key-mode-generate function.

This commit retains the special handling of local diff options saved in
magit-diff-options.  Thanks to npostavs on github for pointing this out.
git format-patch action, email patches w/Emacs

"O" key-binding calls "git format-patch" from within magit.  Formatted
patches may optionally be opened in mail-mode buffers to be mailed from
within Emacs.

Conflicts:
	magit.el
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.

Conflicts:
	magit.el
README mentions enhancements over normal magit