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

`do_pick` is the git-cherry-pick wrapper in git-rebase--interactive that
is used to implement many of the to-do list commands. Eventually, the
complete `do_pick` interface will be exposed to the user in some form or
another and those commands will become simple aliases for the `do_pick`
options now used to implement them.

Add the git-commit option `--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 final
commit. If `--amend` is not passed as well, the fresh authorship effect
is achieved by the mere fact that we are creating a new commit.
rebase -i: Teach do_pick the option --signoff

`do_pick` is the git-cherry-pick wrapper in git-rebase--interactive that
is currently used to implement most of the to-do list commands and
offers additional options that will eventually find their way onto to-do
lists.

To extend the repertoire of available options, add the git-commit and
git-cherry-pick option `--signoff` to the `do_pick` interface. It
appends a Signed-off-by: line using the committer identity to the log
message of the picked commit.
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.
rebase -i: Enable options for pick and reword

pick and reword are atomic to-do list commands in the sense that they
open a new task which is closed after the respective command is
completed. squash and fixup are not atomic. They create a new task which
is not completed until the last squash or fixup is processed.

Remove the `test -z "$opts"` blockade in front of the pick and reword
handling code.

Enable the options `--signoff`, `--gpg-sign`, `--reset-author`,
`--amend`, `--edit` for the to-do list commands pick and reword. The
option `--file` is not yet supported because `do_next` cannot handle
option arguments at the moment. It is true that edit is one of the
atomic commands but it displays hash information when the rebase is
stopped and some options rewrite the picked commit which alters that
information. squash and fixup still do not accept user options.
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`.