rebase -i: Teach do_pick the option --reset-author

`do_pick` is the git-cherry-pick wrapper in git-rebase--interactive that
used to implement the to-do list commands `pick`, `reword`, `squash` and
`fixup`. To cater for the different pick behaviours, `do_pick` accepts
several options not only from the git-cherry-pick but also the
git-commit interface.

Add `--reset-author` to the options pool of `do_pick`. It rewrites the
author date and name of the picked commit to match the committer date
and name.

If `--reset-author` is passed to `do_pick`, set the `rewrite` flag and
relay the option to the git-commit command line which creates the commit
after the picked changes are applied to the working directory and index.
rebase -i: Teach do_pick the option --gpg-sign

`do_pick` is the git-cherry-pick wrapper in git-rebase--interactive that
used to implement the to-do list commands `pick`, `reword`, `squash` and
`fixup`. To cater for the different pick behaviours, `do_pick` accepts
several options not only from the git-cherry-pick but also the
git-commit interface.

Add `--gpg-sign` to the options pool of `do_pick`. It appends a GPG
signature to the commit object.

If `--gpg-sign` is passed to `do_pick`, set the `rewrite` flag and relay
the option to the git-commit command line which creates the commit after
the picked changes are applied to the working directory and index.
rebase -i: Handle rebase option --gpg-sign in do_pick

If `--gpg-sign` is passed to git-rebase, all replayed commits are
GPG-signed. In interactive mode, pretend `--gpg-sign` is passed to every
to-do list command by relaying `gpg_sign_opt` to `do_pick` in `do_next`.
`gpg_sign_opt` is either of the format `-S` or `-S<keyid>` which are
both supported by `do_pick`.
rebase -i: Teach do_pick the option --signoff

`do_pick` is the git-cherry-pick wrapper in git-rebase--interactive that
used to implement the to-do list commands `pick`, `reword`, `squash` and
`fixup`. To cater for the different pick behaviours, `do_pick` accepts
several options not only from the git-cherry-pick but also the
git-commit interface.

Add `--signoff` to the options pool of `do_pick`. It appends a
Signed-off-by: line using the committer identity to the log message of
the picked commit.

If `--signoff` is passed to `do_pick`, set the `rewrite` flag and relay
the option to the git-commit command line which creates the commit after
the picked changes are applied to the working directory and index.
rebase -i: Parse to-do list command line options

Read in to-do list lines as

    command args

instead of

    command sha1 rest

so that a to-do list command lines can contain additional arguments
apart from the commit hash and the log message title, which become the
non-options in `args`. Loop over `args`, put all options (an argument
beginning with a dash) in `opts`, stop the loop on the first non-option
and assign it to `sha1`. The loop does not know the options it parses so
that option arguments are not supported at the moment.

Print an error message for unknown or unsupported command line options,
which means an error for all specified options at the moment.

Ensure that the command line options read from the to-do list can
contain spaces and quotes by using git-rev-parse--sq-quote in
combination with eval.