patch 8.1.1099: the do_tag() function is too long

Problem:    The do_tag() function is too long.
Solution:   Factor parts out to separate functions.  Move simplify_filename()
            to a file where it fits better. (Andy Massimino, closes #4195)
diff --git a/src/proto/findfile.pro b/src/proto/findfile.pro
index 5b80b83..ebab792 100644
--- a/src/proto/findfile.pro
+++ b/src/proto/findfile.pro
@@ -15,4 +15,5 @@
 int vim_ispathlistsep(int c);
 void uniquefy_paths(garray_T *gap, char_u *pattern);
 int expand_in_path(garray_T *gap, char_u *pattern, int flags);
+void simplify_filename(char_u *filename);
 /* vim: set ft=c : */
diff --git a/src/proto/tag.pro b/src/proto/tag.pro
index c9bcb38..3046406 100644
--- a/src/proto/tag.pro
+++ b/src/proto/tag.pro
@@ -6,7 +6,6 @@
 void free_tag_stuff(void);
 int get_tagfname(tagname_T *tnp, int first, char_u *buf);
 void tagname_free(tagname_T *tnp);
-void simplify_filename(char_u *filename);
 int expand_tags(int tagnames, char_u *pat, int *num_file, char_u ***file);
 int get_tags(list_T *list, char_u *pat, char_u *buf_fname);
 void get_tagstack(win_T *wp, dict_T *retdict);