Fix PlanAndOptimize class

  - remote method tryDirectPath that has been moved to PathPlanner,
  - implement startSolve and call internal PathPlanner implementation.
Add documentation
Include missing header.
Provide method to add path planner and path optimizer types in problem solver.
Add a reverse method in Path.
Store weak pointer to itself in PathPlanner class.
Added new connected components list to store information about reachable connected components
Addition of updateCCReachability function to adapt the roadmap to state space planning
Use method path::reverse in roadmap::addNodeAndEdge.
Make members reachableTo_ and reachableFrom_ private and add getters.
Add operator<< in Node and ConenctedComponent classes.
Move method pathExists from PathPlanner to Roadmap classes.
Link test with library.
Add a test to check roadmaps.
Shoot extra configuration variables in BasicConfigurationShooter.
Added checks in case the reachable lists are empty
Merge branch 'master', remote-tracking branch 'origin/master'