recursive walk that can emit stats and file contents (if you want them)