Maintains a non-dominated archive of solutions with a maximum capacity.
If the size exceeds the capacity, one or more solutions are pruned based on
the fitness calculation. The fitness calculation only occurs when the
addition of a solution exceeds the capacity. The fitness can be manually
calculated by calling update().

add(Solution solution)
If newSolution is dominates any solution or is non-dominated with
all solutions in this population, the dominated solutions are removed and
newSolution is added to this population.

add

If newSolution is dominates any solution or is non-dominated with
all solutions in this population, the dominated solutions are removed and
newSolution is added to this population. Otherwise,
newSolution is dominated and is not added to this population.