Win32: Add S_ISDIR macro

In a previous commit we avoided this by directly checking the bits of
the stat structure's st_mode field against S_IFDIR. But since there's
actually several places where we need to do this, it's better to use the
macro, so we now define it if it's missing.
DFDeleteFile: Fix use of incorrect error code

If the call to stat in DFDeleteFile failed, we would incorrectly pass
statbuf.st_mode to DFSetError, which made no sense at all. What we
*really* want to pass in is errno.
DFDeleteFile: Fix incorrect check of unlink result

When DFDeleteFile was called on a regular file, we would incorrectly
interpret a successful deletion as an error, and a failed deletion as a
success. The unlink system call returns zero on success, and non-zero on
failure.
Win32: DFDeleteFile