add plugin interface for collision detectors

This is a potential solution to #532. Highlights:

 * Given the way the allocator stuff works (templated and CRTP), I chose not to wrap the CollisionRobot/World classes, but rather to create a new class that has an initialize() method in which one calls setActiveCollisionDetector() and does any other setup related to the collision detector.
 * Parameter for the name of the collision plugin is held in "collision_detector", and I implemented a parameter search. In addition, if the parameter is not found, we check for "move_group/collision_detector", mainly so that the RVIZ plugin can use the collision detector.

@isucan please review and give feedback.
Sorry,  I did not look at the cmake file. My thought was only to have this
and the base class in different packages.
On Nov 30, 2014 10:56 PM, "Michael Ferguson" <notifications@github.com>
wrote:

> In
> planning/collision_plugin/include/moveit/collision_plugin/collision_plugin_loader.h:
>
> > + *  POSSIBILITY OF SUCH DAMAGE.
> > + *********************************************************************/
> > +
> > +#ifndef MOVEIT_COLLISION_PLUGIN_LOADER_H
> > +#define MOVEIT_COLLISION_PLUGIN_LOADER_H
> > +
> > +#include <ros/ros.h>
> > +#include <moveit/collision_plugin/collision_plugin.h>
> > +
> > +namespace collision_detection
> > +{
> > +
> > +/**
> > + * @brief This is used to load the collision plugin
> > + */
> > +class CollisionPluginLoader
>
> What do you mean by this? It is built as a separate library, but is not a
> separate package (as is done for the kinematics_plugin_loader).
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/ros-planning/moveit_ros/pull/536/files#r21072928>.
>