Constraint sampling IK alternate bugfix

In response to this issue: https://github.com/ros-planning/moveit_planners/issues/44

Rather than changing anything in moveit::core::constraint_samplers, simply setting the GroupStateValidityCallbackFn for the ```constraint_sampler_``` member will make the IKConstraintSampler check the validity of the state and loop over correctly.

To do this, I just added two functions to ```ompl_interface::ConstrainedGoalSampler``` (a callback and a function for checking validity) which is then used by the member ```constraint_sampler::ConstraintSampler```  during IK calls to correctly loop and try randomized seeds.

The other helpful side effect is that this means ```ompl_interface::ConstrainedGoalSampler::work_state_``` is not modified by the IK call unless it is valid.

This pull request makes the following pull requests redundant:
https://github.com/ros-planning/moveit_planners/pull/46
https://github.com/ros-planning/moveit_core/pull/188
ah i see this was already in the wrong format, but I suggest you add a fix for that in this PR also