Messed around with some values of GA.
Partially implemented SelectionRankBasedExtremePreservation

Need to add a method to sort population by fitness, too many selection methods need to have this information.

Need to figure out what is going on with crossover/mutation. Somehow the best individual is getting replaced during this process even if they are guaranteed to be selected.