As seen in https://bugs.llvm.org/show_bug.cgi?id=48880 the current implementation for parsing grouped short options can return unclear error messages.
This change fixes the example given in the ticket in which a flag is incorrectly given an argument. Also when parsing a group we now keep reading past the first incorrect option and output errors for all incorrect options in the group.
This change includes additional test cases added to llvm-symbolizer/unknown-argument.test and fixes up llvm-objcopy/tool-help-message.test due to the change in error output. Note that due to implementation of llvm-objcopy only the first incorrect argument is output.
I could not find a case in which we would enter if (Str.size() == 2) so I have removed it. I think either the option would have already been accepted or we want to create the an Arg as unknown option.