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.