Numerical Semigroups and Applications