Cleanup some RNG related code - made OO style

Signed-off-by: Gary Pamparà <gpampara@gmail.com>
Working GA.

This implementation is tightly coupled to the synchronous iteration scheme.
As a result, this needs to be extracted so that the iteration scheme is
completely separate from the algorithm details (in this case how to create
the offspring and then the selection of the next population).

Signed-off-by: Gary Pamparà <gpampara@gmail.com>
Initial sync and async iteration schemes.

Signed-off-by: Gary Pamparà <gpampara@gmail.com>