cmCTest*Command: Loosen coupling with cmArgumentParser Instead of inheriting from `cmArgumentParser<void>` and binding arguments by overriding `BindArguments`, define a struct for the arguments and instantiate a static const parser in the `InitialPass` function of each command. Pass the argument struct down to all functions that need to access it.