Experimenter loops through experiment parameters

Simple case of separate experiments for each parameter as well as more complex case of multi-variable experiments runs.
Split the experimenter into two functions, one for setup and one for execution.
Updated some checks for setting parameter values.