argparse only supports iterable choices
(issue has prior patch by chris.jerdonek)


incorporates issues 9849 (better add_argument testing) and 9625 (choices with *)
related (but not included): issue11874 which rewrites _format_actions_usage()
Issue 18349
Issue 16977
change in test choices='abc' to choices=['a','b','c']
Merge branch 'issue16468' into composite