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.
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.
customizable display of options to magit commands

Commands added to `magit-immediate-commands' are run immediately without
first displaying options.  All other magit commands are run as normal.
With a prefix argument these behavior are reversed, so members of
`magit-immediate-commands' displaying options and other commands run
immediately.

Whenever a command is immediately run, the action taken is that which is
bound to same keystroke as that used to invoke the command.

When `magit-immediate-commands' is set through the customization
interface, all related magit command functions are redefined with the
appropriate behavior, argument list and documentation.

Importantly, since `magit-immediate-commands' is initially set to nil
this commit has *no* effect on default magit behavior.  It does however
make it easy for users to skip the option pane for specific commands.
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).
remove illegible diff overlays