Added KDTree class outline
Added Attached Apple Collision Object
Merge branch 'dev' of https://github.com/mrkris13/apple-crusher into dev
Added Apple attached collision object

Conflicts:
	src/trajectory_library.cpp
Added definition of Cell class.
Added core functionality for KDTree class.
Added kd_tree.cpp file to CMakeLists.txt
Added ur5_motion_plan::duration field to filewrite and fileread
Merge branch 'dev' of https://github.com/mrkris13/apple-crusher into dev
Added KDTree core functionality.
Seems to be working.
Added KDTree member to TrajectoryLibrary.
Works in parralel with plan_group scheme for storing plans
Added calculateGradient() method
Fixed some bad isPathValid() calls that didn't specify the Joint Group:
 for some reason it ignores the ACM so it was detecting collisions between the zlow plane and base link
Added gradient descent warp() function.
Fixed fileread() and filewrite() to only save/load an apple when present.
Other small fixes/cleanup.
Added getRandomPlan() and getRandomPlanNear() methods to KDTree
Replaced grid with target_volume structure in build_lib.cpp
Removed all references to plan_groups. We are now fully aboard the KDTrain.
Fixed bugs in getRandomPlanStartingNearby
Replaced build_lib.cpp with build_lib_weeding.cpp
Renamed build_lib.launch to build_lib_weeding.launch.
Defined target weeding volume in build_lib_weeding.cpp
Fixed namespace issue from filename change.
Fixed a lot of small bugs.
Split setTargetVolume() and generateTarget() functions.
Rewrote demo() to actually generate random target within target volume,
instead of based on random trajectory lookup.
Still have problem with gradient descent and optimization functions
Fixed optimizeTrajectory() bug --
replaced isPathValid() check with interpolated segmentValid() check.
Added pathValid() checker based on segmentValid().
Replaced planning_scene::isPathValid() calls with pathValid().
Fixed problem with incrementing lookup index in fitPlan()