Reverted crossover changes

Crossover is back to being responsible for generating a single
individual, not an entire population. The population generator creates
the population by using the crossover implementation.