Rewrite cycle detection code to work properly.
Add some framework (compiled out by default) to test it.
(Dprintf, ENTER_DIR, LEAVE_DIR): Define.
(add_object): Remove function. Rewritten as...
(enter_dir): New function.
(leave_dir, free_node): New functions.
(fts_read): Ensure that we call ENTER_DIR or LEAVE_DIR,
as appropriate, before returning.
(look_up_active_dir, fts_cross_check) [FTS_DEBUG]: New functions.
(fts_stat): Don't perform the cycle check here.
Now it's done via enter_dir.