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" which is the *only* remaining unbound
lower-case key.

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