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'
Connected component reachability checks with merging only if direct connectivity exists
CC merging without Depth First Search. Boost Check for path fails in this version
Two Pass SCC algorithm implemented. Labeling issues in detecting lead nodes in Connected components