patch 8.2.0248: MS-Windows: dealing with deprecation is too complicated

Problem:    MS-Windows: dealing with deprecation is too complicated.
Solution:   Use io.h directly. Move _CRT_SECURE_NO_DEPRECATE to the build
            file. Suppress C4091 warning by setting "_WIN32_WINNT". (Ken
            Takata, closes #5626)
diff --git a/src/Make_mvc.mak b/src/Make_mvc.mak
index 5097081..b95e936 100644
--- a/src/Make_mvc.mak
+++ b/src/Make_mvc.mak
@@ -658,7 +658,8 @@
 OPTFLAG = $(OPTFLAG) /GL
 !  endif
 # Visual Studio 2005 has 'deprecated' many of the standard CRT functions
-CFLAGS = $(CFLAGS) /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE
+CFLAGS_DEPR = /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE
+CFLAGS = $(CFLAGS) $(CFLAGS_DEPR)
 ! endif
 
 # (/Wp64 is deprecated in VC9 and generates an obnoxious warning.)
@@ -1348,15 +1349,17 @@
 $(OUTDIR):
 	if not exist $(OUTDIR)/nul  mkdir $(OUTDIR)
 
+CFLAGS_INST = /nologo -DNDEBUG -DWIN32 -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER) $(CFLAGS_DEPR)
+
 install.exe: dosinst.c dosinst.h version.h
-	$(CC) /nologo -DNDEBUG -DWIN32 dosinst.c kernel32.lib shell32.lib \
+	$(CC) $(CFLAGS_INST) dosinst.c kernel32.lib shell32.lib \
 		user32.lib ole32.lib advapi32.lib uuid.lib \
 		-link -subsystem:$(SUBSYSTEM_TOOLS)
 	- if exist install.exe del install.exe
 	ren dosinst.exe install.exe
 
 uninstall.exe: uninstall.c dosinst.h version.h
-	$(CC) /nologo -DNDEBUG -DWIN32 uninstall.c shell32.lib advapi32.lib \
+	$(CC) $(CFLAGS_INST) uninstall.c shell32.lib advapi32.lib \
 		-link -subsystem:$(SUBSYSTEM_TOOLS)
 
 vimrun.exe: vimrun.c
diff --git a/src/dosinst.h b/src/dosinst.h
index c9d8c92..a849dad 100644
--- a/src/dosinst.h
+++ b/src/dosinst.h
@@ -10,12 +10,6 @@
  * dosinst.h: Common code for dosinst.c and uninstall.c
  */
 
-// Visual Studio 2005 has 'deprecated' many of the standard CRT functions
-#if _MSC_VER >= 1400
-# define _CRT_SECURE_NO_DEPRECATE
-# define _CRT_NONSTDC_NO_DEPRECATE
-#endif
-
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -23,7 +17,7 @@
 #include <fcntl.h>
 
 #ifndef UNIX_LINT
-# include "vimio.h"
+# include <io.h>
 # include <ctype.h>
 
 # include <direct.h>
diff --git a/src/version.c b/src/version.c
index 1b22d6f..ba79618 100644
--- a/src/version.c
+++ b/src/version.c
@@ -743,6 +743,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    248,
+/**/
     247,
 /**/
     246,
diff --git a/src/vim.h b/src/vim.h
index ca0f6b1..62cc46c 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -18,7 +18,7 @@
 #endif
 
 #ifdef MSWIN
-# include "vimio.h"
+# include <io.h>
 #endif
 
 // ============ the header file puzzle: order matters =========
diff --git a/src/vimio.h b/src/vimio.h
deleted file mode 100644
index a07620c..0000000
--- a/src/vimio.h
+++ /dev/null
@@ -1,13 +0,0 @@
-/* vi:set ts=8 sts=4 sw=4 noet:
- *
- * VIM - Vi IMproved	by Bram Moolenaar
- *
- * Do ":help uganda"  in Vim to read copying and usage conditions.
- * Do ":help credits" in Vim to see a list of people who contributed.
- * See README.txt for an overview of the Vim source code.
- */
-
-// cproto fails on missing include files
-#ifndef PROTO
-# include <io.h>
-#endif
diff --git a/src/winclip.c b/src/winclip.c
index d97f776..767bf1c 100644
--- a/src/winclip.c
+++ b/src/winclip.c
@@ -14,7 +14,6 @@
  * Also used by Cygwin, using os_unix.c.
  */
 
-#include "vimio.h"
 #include "vim.h"
 
 /*