NCVX–a general purpose optimization package for nonconvex, particularly constrained and nonsmooth, problems