from Scott:  The PR2 example was failing because the URDF includes some negative reductions and they were flipping the min/max efforts. The previous behavior before asymmetric effort limits were supported was to take the absolute value of reductions.

I've put in the extra logic to handle this.
more robust handling of gurobi expired licenses. (at least for checkDependency('gurobi')).  testQP will still fail because I don't have as good of a way to check in checkDependency('gurobi_mex')
Add Constraint class to be used for Drake solver. Currently Support NonlinearConstraint and LinearConstraint. Each constraint has bounds on decision variables and bounds on constraint eval function
Fix the documentation for geval that we support 'user_then_numerical'
LinearConstraint was in the wrong folder
add 'addNonlinearConstraint' to NonlinearProgramWConstraint, also overload its nonlinearConstraints method.
Add addLinearConstraint to NonlinearProgramWConstraint
NonlinearProgramWConstraint can solve the feasibility problem in both fmincon and snopt. I have not decided the form of the constraint yet.
NonlinearProgram can handle the objective function
Made following changes based on the code review
1. Constraint does not have x_lb or x_ub, instead I made a separate class BoundingBoxConstraint to impose the constraints on x directly.
2. No 'relation' property in Constraint
3. Find some bugs in the iGfun,jGvar computation in the previous code. Now I overload the objectiveAndNonlinearConstraints method
Now all the linear inequality constraints in NonlinearProgram are unilateral
Ain*x <= bin
Now the nonlinear equality constraints is imposed with nonlinear_equality_constraint = 0
Disable setting nonlinear sparse gradient in NonlinearProgramWConstraint. Add more test case for 'addLinearInequalityConstraint' and 'addLinearInequalityConstraint' in NonlinearProgramWConstraint
Add a 'categoryString' function to the RigidBodyConstraint. Modify the test files to test such function
change the directory of the BoundingBoxConstraint
add a method 'checkGradient' for NonlinearConstraint to check if the numerical gradeint and the user gradient matches. Also check if the sparsity pattern of the gradient matrix is correct
1. Add 'generateConstraint' methods to SingleTimeKinematicConstraint, MultipleTimeKinematicConstraint,PostureConstraint and QuasiStaticConstraint
2. MultipleTimeKinematicConstraint do not accept 'q' as input to 'eval' function, instead it accepts a cell of kinsol.
All the changes here is in MATLAB. I will need to change the C++ counterpart later
SingleTimeLinearPostureConstraint and MultipleTimeLinearPostureConstraint have methods 'generateConstraint'
ContactWrenchConstraint have 'generateConstraint' method
add check for the 'generateConstraint' function in ContactWrenchConstraint