re-architect: separate Constraint and IK functions

The original design required users to sub-class an existing constrained_ik (or derivative) class to add new constraints.  This design imposed a serial ordering on constraint implementations.  There was no easy way to "mix-and-match" constraints if you wanted to ignore/disable one of the intermediate constraints.  This re-design implements constraints as standalone classes, and users may select which combination of constraints to use.
  - create new Constraint and ConstraintGroup classes
  - push content of old Basic_IK class into new Constraint::GoalPosition and Constraint::GoalOrientation classes.
  - modify Basic_IK to instantiate a default set of Constraints, where the actual "work" is done
bugFixes to ConstraintGroup/Orientation methods

  - ConstraintGroup: propagate SetIK() to child Constraints
  - ConstraintGroup: size Jacobian as matrix not vector
  - GoalOrientation: use correct ordering of goal-pose in CalcError
sync updates from master
add support for variable-length constraints
add init and updateErr/Jac methods to Constraint
port jla_ik to constraints::AvoidJointLimits
Merge pull request #1 from ros-industrial/constraint_list

Constraint list
Merge pull request #3 from dpsolomon/constraint_list

Merge pull request #1 from ros-industrial/constraint_list
added weighting to constraints, fixed bug in AvoidJointLimits constraint
Merge pull request #4 from dpsolomon/constraint_list

added weighting to constraints, fixed bug in AvoidJointLimits constraint
Merge pull request #5 from ros-industrial/constraint_list

Constraint list