Update constraint

Now we can delete and update the constraint in `NonlinearProgram`. Each `Constraint` object has a unique ID in the program. The user can delete or update the constraint using that ID.
Won't we already have thrown this error in `isNonlinearConstraintID`? Maybe we shouldn't throw the error we capture the output?