_git: remove TODOs of actually documented options
_git: correct some "undocumented" options

diff options:
  --cumulative is deprecated --> remove
  --follow was already in there --> remove duplicate
  -G / -S: reword -S to emphase the difference to -G

revision options:
  --abbrev: reword, to emphase the --abbrev-commit requirement
_git: change completion text for consistency
_git: move --(no-)follow to be log-specific option
_git: git rm: make git rm --cached work as intended

While limiting the completion to __git_changed-in-index_files
makes perfect sense for "git diff", it is wrong to use for
"git rm", because it prevents it from completing files present in
HEAD. Giving --cached to git rm is supposed to
"just remove it from the index, keep the working tree copy"
and is in no way related to the file needing to be
modified in the index in the first place.
_git: Document --early-output