Fixed #19973 -- Replaced optparse by argparse in management commands

Thanks Tim Graham for the review.
Documented optparse to argparse changes for management commands
Converted test management command to argparse

Keeping backwards compatibility with test_runner.option_list is
tricky and would imply transforming an optparse.Option to an
argparse.Action. I choose to introduce a backwards incompatible
change because it only affects testing, not runtime behavior.
Converted remaining management commands to argparse
Fixed several flake8 errors
Restored command error behavior when called from command line

Refs #19973.
Fixed #7762 -- Hidden full script name in command error output
Complemented dwithin docs about using geographic geometries

Refs #22830. Thanks django@gfairchild.com for the suggestion.