Since not all file systems support d_type, I made its static fallback dynamic

The use of dtype in readdir() output is filesystem-specific, and so only looking at a static flag didn't work for me.

Where supported, the dtype value is considered; but if it has a bad value, it falls back to the code that was written for platforms that have no dtype support at all.

When dtype is not supported by the OS, tokens can be created but will never be listed; with this patch in place, that is remedied.