patch 8.1.0743: giving error messages is not flexible

Problem:    Giving error messages is not flexible.
Solution:   Add semsg().  Change argument from "char_u *" to "char *", also
            for msg() and get rid of most MSG macros. (Ozaki Kiichi, closes
            #3302)  Also make emsg() accept a "char *" argument.  Get rid of
            an enormous number of type casts.
diff --git a/src/gui_at_fs.c b/src/gui_at_fs.c
index 77c8ea6..e65a266 100644
--- a/src/gui_at_fs.c
+++ b/src/gui_at_fs.c
@@ -1063,7 +1063,7 @@
 #endif
 	if (!SFfont)
 	{
-	    EMSG2(_("E616: vim_SelFile: can't get font %s"), SF_DEFAULT_FONT);
+	    semsg(_("E616: vim_SelFile: can't get font %s"), SF_DEFAULT_FONT);
 	    SFstatus = SEL_FILE_CANCEL;
 	    return;
 	}
@@ -2629,7 +2629,7 @@
     XtRemoveTimeOut(SFdirModTimerId);
     if (SFchdir(SFstartDir))
     {
-	EMSG(_("E614: vim_SelFile: can't return to current directory"));
+	emsg(_("E614: vim_SelFile: can't return to current directory"));
 	SFstatus = SEL_FILE_CANCEL;
     }
 }
@@ -2658,7 +2658,7 @@
 
     if (mch_dirname((char_u *)SFstartDir, MAXPATHL) == FAIL)
     {
-	EMSG(_("E615: vim_SelFile: can't get current directory"));
+	emsg(_("E615: vim_SelFile: can't get current directory"));
 	return NULL;
     }