patch 8.0.1312: balloon_show() only works in terminal when compiled with GUI

Problem:    balloon_show() only works in terminal when compiled with the GUI.
Solution:   Add FEAT_BEVAL_GUI and refactor to move common code out of the GUI
            specific file.
diff --git a/src/proto/beval.pro b/src/proto/beval.pro
new file mode 100644
index 0000000..716fbbe
--- /dev/null
+++ b/src/proto/beval.pro
@@ -0,0 +1,6 @@
+/* beval.c */
+int get_beval_info(BalloonEval *beval, int getword, win_T **winp, linenr_T *lnump, char_u **textp, int *colp);
+void post_balloon(BalloonEval *beval, char_u *mesg);
+int can_use_beval(void);
+void general_beval_cb(BalloonEval *beval, int state);
+/* vim: set ft=c : */
diff --git a/src/proto/gui_beval.pro b/src/proto/gui_beval.pro
index aa0553f..4edb45c 100644
--- a/src/proto/gui_beval.pro
+++ b/src/proto/gui_beval.pro
@@ -1,12 +1,9 @@
 /* gui_beval.c */
-void general_beval_cb(BalloonEval *beval, int state);
 BalloonEval *gui_mch_create_beval_area(void *target, char_u *mesg, void (*mesgCB)(BalloonEval *, int), void *clientData);
 void gui_mch_destroy_beval_area(BalloonEval *beval);
 void gui_mch_enable_beval_area(BalloonEval *beval);
 void gui_mch_disable_beval_area(BalloonEval *beval);
 BalloonEval *gui_mch_currently_showing_beval(void);
-int get_beval_info(BalloonEval *beval, int getword, win_T **winp, linenr_T *lnump, char_u **textp, int *colp);
-void post_balloon(BalloonEval *beval, char_u *mesg);
 void gui_mch_post_balloon(BalloonEval *beval, char_u *mesg);
 void gui_mch_unpost_balloon(BalloonEval *beval);
 /* vim: set ft=c : */