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.
Should these params be cached? If this function ends up being called often enough, it would be nicer to avoid calls to the param server.