Added a much faster cpp version

I added basic pruning so recursion won't be called if the best path using the rest of unvisited nodes cannot possibly improve the current solution.