Refactor: Symlink functionality for state file.recurse

Added logic in state file.recurse to support symlinks.

Other various changes to support this effort.

I closed the previous request so that I could thoroughly test out my logic as mush as possible and ended up refactoring most of what I originally had. I am satisfied now :-)