Don't revisit directories via recursive symlinks

By building a set of canonicalized paths as directories are visited
during a recursive walk, we can prevent cgrep from mistakenly
traversing symlinks that recursively lead up the current directory
structure to an already visited directory.

Fixes #6