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.
add note to the head of the README