cleans up constraint classes and implements basic rrt.

wanted to shake out the framework for motion planning using our constraint object infrastructure (before we get too far with it and find out something doesn't work!).  it mostly worked out of the box.  the biggest nuisance was that FunctionHandleConstraints were assumed to be differentiable constraints, but I wanted functionhandleconstraints that were non-differentiable.  after trying a few different ways to clean this up, i'm very happy now with the proposed solution:
  - zap DifferentiableConstraint
  - every constraint can announce their grad_level (the level of user gradients that they provide), which can be "non-differentiable".  i also streamlined the use of this information right through to geval.  I think it's good.

Let me know what you think.

Also - minor thing - but I noticed a lot of the constraint classes properties were being documented using @param at the top of the class definition.  That's not the way that doxygen parses it.  You should just write the comment inline with the property in the properties block.  I've cleaned that up in a few of the files, but not all.
Then it does not agree with the dimension in `geval`. I think `geval` would return `sparse(size(obj.A,1),size(obj.A,2)*obj.xdim)`