Walk a directory tree recursively