Create experiment package and move GAParameters into it.  Write GAProblem and GAExperiment, a nearly top-level definition of a fairly traditional genetic algorithm.
Create the Measurement abstract class and alter all PopulationMetrics to output a Measurement instead of a String.  This makes it easier to access the results of measurements programmatically.  Measurement.toString() still makes it easy to output metrics in CSV format.  Also convert the Individual interface to an abstract class to enforce the overriding of equals, hashCode and toString.
Make GAExperiment take lists of PopulationMetrics as arguments, and change the SimpleCircleOfLife constructor to use Options instead of null values for optional parameters.
Write MemoryPopulationMetric, for storing the most recent Measurement made by a PopulationMetric, and FitnessStatisticsMeasurement, a version of DoubleArrayMeasurement with semantically meaningful getters for use with FitnessStatisticsPopulationMetric.