Updated the methodology for directory traversal

The original methodology used build in .NET directory traversal
mechanisms that caused issues with reparse points... junction points,
symbolic links and hard links. The new approach leverages a stack
based walk of the directory hierarchy.