Refactor the population code in order to make it more flexible.
Refactor the population code in order to make it more flexible.

Basically split `partition` (niching) and `reproduce` into two
separate concerns.

mneumann/neat-rs