patch 8.1.0825: code for autocommands is mixed with file I/O code

Problem:    Code for autocommands is mixed with file I/O code.
Solution:   Move autocommand code to a separate file. (Yegappan Lakshmanan,
            closes #3863)
diff --git a/src/Makefile b/src/Makefile
index 23f01c3..2c409f0 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -1572,6 +1572,7 @@
 
 BASIC_SRC = \
 	arabic.c \
+	autocmd.c \
 	beval.c \
 	blob.c \
 	blowfish.c \
@@ -1684,6 +1685,7 @@
 
 OBJ_COMMON = \
 	objects/arabic.o \
+	objects/autocmd.o \
 	objects/beval.o \
 	objects/buffer.o \
 	objects/blob.o \
@@ -1809,6 +1811,7 @@
 
 PRO_AUTO = \
 	arabic.pro \
+	autocmd.pro \
 	blowfish.pro \
 	buffer.pro \
 	charset.pro \
@@ -2934,6 +2937,9 @@
 objects/arabic.o: arabic.c
 	$(CCC) -o $@ arabic.c
 
+objects/autocmd.o: autocmd.c
+	$(CCC) -o $@ autocmd.c
+
 objects/blob.o: blob.c
 	$(CCC) -o $@ blob.c
 
@@ -3376,6 +3382,10 @@
  auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
  proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
  proto.h globals.h farsi.h arabic.h
+objects/autocmd.o: autocmd.c vim.h protodef.h auto/config.h feature.h \
+ os_unix.h os_mac.h ascii.h keymap.h term.h macros.h option.h beval.h \
+ structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h proto.h globals.h \
+ farsi.h arabic.h
 objects/beval.o: beval.c vim.h protodef.h auto/config.h feature.h os_unix.h \
  auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
  proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \