FMT updates: improves code, heuristics, kNN and collision check caching

Please, note that the new parameter cacheCC_ is intentionally not included as a PlannerParam because we want the general users to take advantage of it and not disable it accidentally. An advanced user could use the setCacheCC() method.
That was my first thought. I tried with boost unordered map but the performance was exactly the same. I also tried the other maps in the code but no real difference was found.