Remember fitness values for specimens between generations.

- Optimizes running time by remembering the fitness values for specimens which are retained in the next generation.
- Optimizes running time by providing remembered fitness values to stopping condition function.
- Added better generation progress reporting.
Split model into probabilistic and monte carlo simulations.