Redesigned CForest to minimize changes to asymptotically optimal planner...

...s it uses. Fix bug in benchmarking that caused huge log files. Added option for tree pruning in RRT*
No, the destructor of each planner should take care of freeing memory. I imagined that this method would be useful if you want to use the same CForest instance with different sets of planners for different calls to solve.