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.