commit-test: omit header of empty list

If all the given signers have signed and there are still not enough
signatures a header was printed for an empty list.
commit-test: make signer a positional argument

Path is unlikely to need setting as repos will be discovered; signers
seem the most likely thing to set.
sign-off: require at least one signer
commit-test: add --list-type with per-signer output mode

Per-commit mode can be hard to read.
commit-test: print per-signer commit count
sign-off: output when already signed off
sign-off: output when no sign-offs to add
sign-off: fix unintended argument modification

Assigning a set does not copy it, so discarding existing signers was
modifying the signers that would be later applied.
Update documentation description and examples