magit-popup-insert-section: ignore maxcols during sequence

This is a kludge on top of another kludge, that's
how these things go.  Needs to be fixed, obviously.
magit-rebase-{edit,reword}-commit: new commands
magit-{sequencer,cherry-pick,revert}-in-progress-p: bugfix

Previously these functions assumed that a cherry-pick/revert is in
progress if ".git/{CHERRY_PICK_HEAD,REVERT_HEAD}" exists.  That does
not have to be the case.  However ".git/sequencer{,/todo} do exist
in both cases, and the content of ".git/sequencer/todo" tells us
which of the two it is.
magit-patch-id: new function
magit-with-temp-index: allow reading into the temporary index
magit-commit-{tree,worktree}: new functions
magit-rev-equal: new function
magit-am-apply-patches: fix patch order
take sequence sections to the next level
use same specialized sentinel for all sequence commands

Remove `magit-rebase-async', instead use `magit-run-git-sequencer'
for all the other sequence commands too.  This function now uses
`magit-sequencer-process-sentinel' which was previously named
`magit-rebase-process-sentinel' and is now adjusted to find
commits in non-rebase sequence sections too.
add new library magit-sequence.el
Merge branch 'n/sequencer' into next