trackbone: fix cycle detection
In a case like this:
A -> B (1) -> C -> F
B (2) -> D -> F
Because the visited map was shared between branches, the (1) branch marks F as visited and then scanning the (2) branch reports a cycle because F is already marked as visited.