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'
magit-diff: fix regression

Since 4bb6cb07b9dab950742f3edd7cfa38afe1721839 `magit-diff', when the
diff buffer already existed, did not use the current `default-directory'
but that of the buffer.  Now it resets the local value again.
multiple git procs with let-bound magit-process

Change magit-run* so that asynchronous git commands bind the
magit-process variable using let instead of setq.  This allows magit to
run multiple concurrent git processes.

Despite a number of indented lines, this patch really only changes the
single line where the setq is replaced with a let (and of course an
added parenthesis ending the body of the let).
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
README mentions enhancements over normal magit