Recursively walk through the filesystem, searching for files and directories, either async or synchronous while optionally filtering.