Modify k-d tree implementation

  - do not use distance specific to joints, but cartesian distance in joint
    configuration space.
  - if input distance is not WeighedDistance, create a fake one with 1 as
    coefficients.
Update to modification in hpp-model

  - split rotation joint into two classes.
Do not install k-d-tree.hh

  - KDTree is an internal class that does not need to be exposed to users.
Fix construction of robot in test-kdtree and sample 2000 configurations.
Fix memory deallocation when deleting KDTree.

  - the children were not deleted.
Create a abstract class NearestNeighbor for KDTree

  - two implementations: nearestNeighbor::KDTree and nearestNeighbor::Basic.
  - update test accordingly.
  - use nearestNeighbor::Basic by default since nearestNeighbor::KDtree fails
    with benchmark 2014/09/27/pr2_in_iai_kitchen.
Merge remote-tracking branch 'origin/master' into visiprm
Fix bug in ConfigProjector::impl_compute
Fix bug in PathVector::extract
Make Distance::operator () and impl_distance const
Modify end condition in RandomShortcut

  - number of shortcut without improving path length is set to 5 instead of 10.
Merge remote-tracking branch 'origin/master' into visiprm
Try to build forward and backward path when calling steering-method to prevent abusive collision detection