Drone Squadron Optimization: a Self-adaptive Algorithm for Global Numerical Optimization