feat: add multiple weights to constrained functions
feat: add number of constraints as a generic
feat(lib): constraints along with evolutionary strategies