patch 8.1.1195: Vim script debugger functionality needs cleanup

Problem:    Vim script debugger functionality needs cleanup.
Solution:   Move debugger code to a separate file.  Add more tests. (Yegappan
            Lakshmanan, closes #4285)
diff --git a/src/Make_vms.mms b/src/Make_vms.mms
index bc8aee6..edf77cb 100644
--- a/src/Make_vms.mms
+++ b/src/Make_vms.mms
@@ -308,30 +308,30 @@
 	   $(PERL_LIB) $(PYTHON_LIB) $(TCL_LIB) $(RUBY_LIB)
 
 SRC =	arabic.c autocmd.c beval.c blob.c blowfish.c buffer.c charset.c \
-	crypt.c crypt_zip.c dict.c diff.c digraph.c edit.c eval.c evalfunc.c \
-	ex_cmds.c ex_cmds2.c ex_docmd.c ex_eval.c ex_getln.c if_cscope.c \
-	if_xcmdsrv.c fileio.c findfile.c fold.c getchar.c hardcopy.c \
-	hashtab.c indent.c insexpand.c json.c list.c main.c mark.c menu.c \
-	mbyte.c memfile.c memline.c message.c misc1.c misc2.c move.c normal.c \
-	ops.c option.c popupmnu.c quickfix.c regexp.c search.c sha256.c sign.c \
-	spell.c spellfile.c syntax.c tag.c term.c termlib.c textprop.c ui.c \
-	undo.c userfunc.c version.c screen.c window.c os_unix.c os_vms.c \
-	pathdef.c
+	crypt.c crypt_zip.c debugger.c dict.c diff.c digraph.c edit.c eval.c \
+	evalfunc.c ex_cmds.c ex_cmds2.c ex_docmd.c ex_eval.c ex_getln.c \
+	if_cscope.c if_xcmdsrv.c fileio.c findfile.c fold.c getchar.c \
+	hardcopy.c hashtab.c indent.c insexpand.c json.c list.c main.c mark.c \
+	menu.c mbyte.c memfile.c memline.c message.c misc1.c misc2.c move.c \
+	normal.c ops.c option.c popupmnu.c quickfix.c regexp.c search.c \
+	sha256.c sign.c spell.c spellfile.c syntax.c tag.c term.c termlib.c \
+	textprop.c ui.c undo.c userfunc.c version.c screen.c window.c \
+	os_unix.c os_vms.c pathdef.c \
 	$(GUI_SRC) $(PERL_SRC) $(PYTHON_SRC) $(TCL_SRC) \
  	$(RUBY_SRC) $(HANGULIN_SRC) $(MZSCH_SRC) $(XDIFF_SRC)
 
 OBJ = 	arabic.obj autocmd.obj beval.obj blob.obj blowfish.obj buffer.obj \
-	charset.obj crypt.obj crypt_zip.obj dict.obj diff.obj digraph.obj \
-	edit.obj eval.obj evalfunc.obj ex_cmds.obj ex_cmds2.obj ex_docmd.obj \
-	ex_eval.obj ex_getln.obj if_cscope.obj if_xcmdsrv.obj \
+	charset.obj crypt.obj crypt_zip.obj debugger.obj dict.obj diff.obj \
+	digraph.obj edit.obj eval.obj evalfunc.obj ex_cmds.obj ex_cmds2.obj \
+	ex_docmd.obj ex_eval.obj ex_getln.obj if_cscope.obj if_xcmdsrv.obj \
 	fileio.obj findfile.obj fold.obj getchar.obj hardcopy.obj hashtab.obj \
 	indent.obj insexpand.obj json.obj list.obj main.obj mark.obj \
 	menu.obj memfile.obj memline.obj message.obj misc1.obj misc2.obj \
 	move.obj mbyte.obj normal.obj ops.obj option.obj popupmnu.obj \
 	quickfix.obj regexp.obj search.obj sha256.obj sign.obj spell.obj \
 	spellfile.obj syntax.obj tag.obj term.obj termlib.obj textprop.obj \
-	ui.obj undo.obj userfunc.obj screen.obj version.obj window.obj \
-	os_unix.obj os_vms.obj pathdef.obj if_mzsch.obj \
+	ui.obj undo.obj userfunc.obj screen.obj version.obj \
+	window.obj os_unix.obj os_vms.obj pathdef.obj if_mzsch.obj \
 	$(GUI_OBJ) $(PERL_OBJ) $(PYTHON_OBJ) $(TCL_OBJ) \
  	$(RUBY_OBJ) $(HANGULIN_OBJ) $(MZSCH_OBJ) $(XDIFF_OBJ)
 
@@ -522,6 +522,10 @@
  ascii.h keymap.h term.h macros.h option.h structs.h \
  regexp.h gui.h beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h \
  proto.h globals.h
+debugger.obj : debugger.c vim.h [.auto]config.h feature.h os_unix.h \
+ ascii.h keymap.h term.h macros.h structs.h regexp.h \
+ gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
+ globals.h
 dict.obj : dict.c vim.h [.auto]config.h feature.h os_unix.h \
  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
  beval.h [.proto]gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \