Add two point crossover implementation and tests