We need to get rid of target_size, so we can make a proper threaded genetic engine step.
The goal is for evaluation to skip invalid individuals, and produce infinite streams of individuals. Section will batch then (and possibly evaluate them in parallel).