Don't crawl hidden files or directories.

This change avoids crawling hidden files or directories.

When crawling a directory, hidden files and subdirectories
are still included in the returned content listing, however
subsequent attempts to crawl them will return not found.

This change also verifies that the requested file/folder
does not reside within a hidden ancester directory.

Code Review:
3 files changed