[benchmark][Gardening] Introduce PartialTestConfig
[benchmark][Gardening] Introduce PartialTestConfig

Moving towards immutable TestConfig.

The pattern used is inspired by the`PartialBenchmarkConfig` from [criterion.rs](https://github.com/japaric/criterion.rs/blob/master/src/benchmark.rs).

The idea is to have a temporary mutable struct which collects the command line arguments and is filled by the “parser” (which will be extracted later). The partial configuration is used to initialize the immutable `TestConfig`.

The optionality of the command line parameters is represented by the corresponding properties being `Optional`. (Accidentaly, all our arguments are optional… but that’s beside the point.) Null coalescing operator is used to fill in the defaults during initialization.

For some reason, the compiler found `optionalArg` calls for `tags` and `skip-tags` ambiguous, when types changed to `Set<BenchmarkCategory>?`, which was resolved by providing fully qualified key paths for them (`\PartialTestConfig.tags`).

practicalswift/swift,parkera/swift,hooman/swift,tkremenek/swift,gribozavr/swift,nathawes/swift,devincoughlin/swift,alblue/swift,tkremenek/swift,devincoughlin/swift,allevato/swift,gribozavr/swift,karwa/swift,sschiau/swift,JGiola/swift,allevato/swift,brentdax/swift,ahoppen/swift,parkera/swift,austinzheng/swift,sschiau/swift,practicalswift/swift,hooman/swift,xwu/swift,xedin/swift,roambotics/swift,airspeedswift/swift,sschiau/swift,danielmartin/swift,rudkx/swift,devincoughlin/swift,benlangmuir/swift,sschiau/swift,alblue/swift,jckarter/swift,karwa/swift,ahoppen/swift,jckarter/swift,shahmishal/swift,shajrawi/swift,jopamer/swift,aschwaighofer/swift,brentdax/swift,shahmishal/swift,apple/swift,gregomni/swift,rudkx/swift,jmgc/swift,jmgc/swift,shahmishal/swift,atrick/swift,lorentey/swift,stephentyrone/swift,harlanhaskins/swift,shajrawi/swift,brentdax/swift,lorentey/swift,shahmishal/swift,apple/swift,xedin/swift,jmgc/swift,ahoppen/swift,jmgc/swift,nathawes/swift,shajrawi/swift,sschiau/swift,natecook1000/swift,hooman/swift,CodaFi/swift,glessard/swift,gregomni/swift,austinzheng/swift,brentdax/swift,brentdax/swift,harlanhaskins/swift,aschwaighofer/swift,nathawes/swift,roambotics/swift,xedin/swift,aschwaighofer/swift,nathawes/swift,ahoppen/swift,gribozavr/swift,benlangmuir/swift,hooman/swift,allevato/swift,xedin/swift,gribozavr/swift,aschwaighofer/swift,airspeedswift/swift,apple/swift,rudkx/swift,danielmartin/swift,shajrawi/swift,harlanhaskins/swift,practicalswift/swift,airspeedswift/swift,benlangmuir/swift,gribozavr/swift,CodaFi/swift,ahoppen/swift,karwa/swift,brentdax/swift,glessard/swift,airspeedswift/swift,jopamer/swift,natecook1000/swift,gregomni/swift,amraboelela/swift,gribozavr/swift,shahmishal/swift,hooman/swift,shahmishal/swift,nathawes/swift,practicalswift/swift,ahoppen/swift,parkera/swift,stephentyrone/swift,jckarter/swift,karwa/swift,amraboelela/swift,lorentey/swift,glessard/swift,lorentey/swift,aschwaighofer/swift,karwa/swift,shajrawi/swift,harlanhaskins/swift,practicalswift/swift,shahmishal/swift,airspeedswift/swift,danielmartin/swift,apple/swift,parkera/swift,sschiau/swift,lorentey/swift,atrick/swift,amraboelela/swift,nathawes/swift,austinzheng/swift,jckarter/swift,tkremenek/swift,glessard/swift,jopamer/swift,stephentyrone/swift,karwa/swift,practicalswift/swift,amraboelela/swift,atrick/swift,CodaFi/swift,harlanhaskins/swift,aschwaighofer/swift,amraboelela/swift,jmgc/swift,karwa/swift,devincoughlin/swift,atrick/swift,atrick/swift,natecook1000/swift,tkremenek/swift,natecook1000/swift,gribozavr/swift,parkera/swift,jmgc/swift,harlanhaskins/swift,alblue/swift,atrick/swift,xedin/swift,aschwaighofer/swift,natecook1000/swift,hooman/swift,karwa/swift,allevato/swift,jopamer/swift,JGiola/swift,alblue/swift,xedin/swift,airspeedswift/swift,stephentyrone/swift,brentdax/swift,jckarter/swift,benlangmuir/swift,airspeedswift/swift,roambotics/swift,lorentey/swift,austinzheng/swift,jopamer/swift,xwu/swift,shajrawi/swift,glessard/swift,devincoughlin/swift,lorentey/swift,amraboelela/swift,roambotics/swift,JGiola/swift,xwu/swift,gregomni/swift,jckarter/swift,natecook1000/swift,parkera/swift,parkera/swift,rudkx/swift,CodaFi/swift,hooman/swift,shahmishal/swift,austinzheng/swift,nathawes/swift,stephentyrone/swift,devincoughlin/swift,devincoughlin/swift,benlangmuir/swift,JGiola/swift,gribozavr/swift,xwu/swift,allevato/swift,danielmartin/swift,rudkx/swift,harlanhaskins/swift,xedin/swift,glessard/swift,roambotics/swift,tkremenek/swift,danielmartin/swift,practicalswift/swift,jopamer/swift,CodaFi/swift,apple/swift,jmgc/swift,xwu/swift,xwu/swift,devincoughlin/swift,shajrawi/swift,alblue/swift,tkremenek/swift,apple/swift,roambotics/swift,parkera/swift,benlangmuir/swift,jckarter/swift,austinzheng/swift,CodaFi/swift,danielmartin/swift,jopamer/swift,alblue/swift,alblue/swift,amraboelela/swift,sschiau/swift,allevato/swift,sschiau/swift,lorentey/swift,allevato/swift,JGiola/swift,austinzheng/swift,danielmartin/swift,stephentyrone/swift,gregomni/swift,rudkx/swift,CodaFi/swift,xedin/swift,tkremenek/swift,xwu/swift,JGiola/swift,stephentyrone/swift,shajrawi/swift,practicalswift/swift,natecook1000/swift,gregomni/swift