Add OutputStep base class for output steps
Adds an OutputStep base class, which provides generic means of specifying what fields an output step should write.
Together with the (future) Step::getProvidedFields() function, this interface should be used in the future instead of DPInfo::write[Data|Flags|Weights].