magit-run-git-sequencer: new function

Add new function `magit-run-git-sequencer' which generalizes setting
the "server arguments" as `magit-rebase-async' does.  Other "sequence"
operations to be implemented shortly need this too.  (For now?) keep
`magit-rebase-async' as a wrapper around the new function.
treat git-revert and git-cherry-pick as the sequence commands they are
treat git-am and git-rebase as the distinct commands they are
magit-rebase-{continue,skip,edit,abort}: use user-error
magit-format-patch: new command
magit-mode-map: change some key bindings

* Bind "h" to `magit-dispatch-popup'.  This command is very useful for
  beginners, who also are likely to try what pressing "h" does.

* Previously "h" was bound to `magit-log-toggle-margin'.  Instead bind
  "L" to it.  ("l" is bound to `magit-log-popup').

* Previously "H" was bound to `magit-diff-toggle-refine-hunk' which kind
  of made sense because, like the command "h" was previously bound to,
  it "changed some details".  Like that command was moved "next to" the
  respective popup, move `magit-diff-toggle-refine-hunk' to "D".  ("d"
  is bound to `magit-diff-popup').

* Also rearrange the forms in `magit-mode-map's definition.
magit-insert-merge-log: new section inserter

This replaces `magit-insert-status-merge-line'.
Merge branch 'n/sequencer' into next