Add universal way to stop EA loop in all GA and ES play loops

Instead of having hard coded stop criterions inside the EA loops, the
user can now input their own stop_func() that gets called every
generation.
Add sine_config.json
Add a stub benchmark config