General refactor of the way data points are generated

This extracts logic out of the SamplesContainer (previously DataContainer),
which should really be as simple as possible. In the old code, it was also
unconditionally tied to the event of single link failure, which should not
be the case. In the long run, even the computing of samples in the traditional
mode should be decoupled from this very specific event.

This commit also cleans up comments and renames variables in certain places.