Add 'setBounds' method to Constraint, fix the input check in Constraint class
add the test for 'setBounds' in Constraint class
delete NonlinearProgramWConstraintObjects, move its content to NonlinearProgram
Add IPOPT support to NonlinearProgram
revise the NonlinearProgram, such that the objective and constraints only compute the gradient when they have to.
Remove 'addSlackVariables' in CompositeConstraint, this can cause confusion if we addSlackVariable and then add constraints, as the old constraints and the newly added constraints are for different set of variables.
move 'infeasible_constraint' to NonlinearProgram from InverseKinematics
Fixes for NonlinearProgram after run make test
Merge branch 'master' into cleanupNonlinearProgram

Conflicts:
	solvers/NonlinearProgram.m
	solvers/test/testNLPWConstraint.m
Fix a bug in adding constraint names to NonlinearProgram. Add more logics to setSolver so now it accepts 'default'
Fix QuadraticProgram, now it overloads the methods from NonlinearProgram, such as addCost
Throw error in PolynomialProgram when the user wants to call methods like 'addCost', 'addNonlinearConstraint'
Add dependecy checking when we compare solvers for NonlinearProgram
add dependecy check for fastqp
Revise the error message for the constraint not supported yet in PolynomialProgram
PolynomialProgram should accept addBoundingBoxConstraint
change the method name to avoid confusion when choosing functions
Set the field num_cin and num_ceq in the PolynomialProgram, so that the solver can call snopt
Add some print message to debug on build server
Fix a bug when the NonlinearProgram has no constraint, then its lower and upper bounds should be [], rather than zeros(1,0)