Contains all classes related to model optimization. The RunEstimator interface
contains the method signatures which every optimizer must implement. There is a generic
class with common method implementations: RunEstimatorImpl, but every specific
strategy to optimize the models should extend this class or at least implement the interface.
For example, PhyML optimizer has his own implementation PhyMLv3AminoAcidRunEstimator.
In future versions this vertical hierarchy, which could allow extension to support Nucleotide models,
should be transformed following a Bridge Pattern.