netloc: disable when dirent doesn't have ->d_type

Solaris and AIX don't have d_type.
Don't blacklist them, just look for dirent->d_type explicitly.

Also we should protect the current code with _DIRENT_HAVE_D_TYPE.
If d_type exists and returns DT_UNKNOWN or if d_type doesn't exist, do a lstat.
debug: remove some duplicate assertions in topology_check()