Further fixes to file size handling on Windows with fd and FILE*
filelength is not available on Windows CE instead, we must fallback to
fseek/ftell as was being done previously. Still on Windows CE, we still
don't report the file size for file descriptors, but we also won't set a
random error string.
Changed qt_error_string calls to use errno when errors come from CRT
functions.
Also, if we're using filelength on FILE* streams, there's no reason not
to use it for file descriptors, instead of requesting a native handle.
Reviewed-by: Olivier Goffart