refactored the code by moving the visualization methods from DiffEvo to a new class DffEvoVisualization and by moving the output-writing methods to a new class DiffEvoOutputWriters. This did require that the EvalResults class now contains more stuff, and it required that DiffEvo's start method now returns an EvalResults object, which can then be passed on to an instance of DiffEvoOutputWriters or DiffEvoVisualization