EOS: A Parallel, Self-Adaptive, Multi-Population Evolutionary Algorithm for Constrained Global Optimization