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.
Well, &z as argument would clearly indicate you war writing to z. Otherwise, it is unclear from the call site. I am fine either way though.