Unify invariance tests
Unify CPU invariance and frequency invariance. The rational is:
- simplify the hierarchy of class in the test, and simplify the signature of functions by removing some defaults that are not always used depending on the execution path.
- Avoid misleading assumptions: if CPU invariance fail, that could just mean that invariance is broken for the highest frequency, since working freq invariance is a hardcoded assumption in the CPU invariance test. The new layout allows unbiased access to data.
- Allow running the test for any combination of CPU and frequency without arbitrary constraint
- The previous point also means that some duplicated was removed
Also, make sure only one set of InvarianceItem is collected and use that for both the aggregated and non-aggregated version of each test method.