This MR adds an ExpListFactory class and the necessary methods to ExpList and its subclasses. It currently assumes the changes from tidy/VariableNames to be present and will probably fail the regression tests. That can be fixed easily.
Currently, ExpList and its subclasses have countless different constructors which is impossible to cover in the factory class. The constructor i chose to use was one i would consider a common denominator. The homogeneous classes are particularly problematic in this matter and i am not sure if the factory works for them, too.