copyDir and copyDirWithPermissions do not handle FIFOs (named pipes)
### Description

I am trying to copy a rootfs that has FIFO files that were created with the following command:

```sh
mkfifo -m 600 fifoFile
```

and both `copyDir`/`copyDirWithPermissions` stall/freeze when attempting to copy them.

### Nim Version

```Nim
Nim Compiler Version 2.0.8 [Linux: amd64]
Compiled at 2024-07-03
Copyright (c) 2006-2023 by Andreas Rumpf

git hash: 5935c3bfa9fec6505394867b23510eb5cbab3dbf
active boot switches: -d:release
```

### Current Output

```text
No output is being produced, it appears to be frozen/stalled waiting for something magical to happen :)
```


### Expected Output

```text
These special files (named pipes or FIFOs) can be copied, rsynced and tarballed (archived).
```


### Known Workarounds

Skipping these files I guess?

### Additional Information

This is an official bug report from the following [issue](https://forum.nim-lang.org/t/12517) submitted on the Nim forums.

- `cp`, `rsync` and `tar` are capable of handling such files
- The `git` cli command does not with them either (does not detect them, and does not allow for setting permissions on them)
- FIFO files are mentioned as special files under [walkDir](https://github.com/nim-lang/Nim/blob/devel/lib/std/private/osdirs.nim#L172)

- Perhaps `copyDir` and `copyDirWithPermissions` can have an additional argument called `skipSpecial` that gets passed to the called `walkDir`. For example, `walkDir` could be called like this from within `copyDir`/`copyDirWithPermissions` (after modifying their definitions):

```nim
proc copyDirWithPermissions*(source, dest: string,
                             ignorePermissionErrors = true,
                             skipSpecial = false)
...
for kind, path in walkDir(source, skipSpecial = skipSpecial):
...
```

- [Python](https://docs.python.org/3/library/shutil.html) raises an exception when trying to copy special files (comment made by `janAkali`)
- In [Rust](https://doc.rust-lang.org/std/fs/fn.copy.html) you get an error on copying a file if it is neither a regular file nor a symlink to a regular file (comment made by `janAkali`)