AthenaMonitoringKernel: Refactor filling methods
Introduce a generic HistogramFiller::fill
method that can be used to
fill a histogram of any dimension and from double/string
valued
monitored variables. Make use of this in the 1D/2D filler to reduce code
duplication. Can be extended further to other fillers.
The code relies heavily on C++14/17 features (fold expressions, parameter pack expansion, if constexpr, ...) to perform as many compile-time optimizations as possible.
There are no functional changes (e.g. Run3DQTestingDriver.py
histograms are identical before/after these changes).