patch 8.1.0614: placing signs can be complicated

Problem:    Placing signs can be complicated.
Solution:   Add functions for defining and placing signs.  Introduce a group
            name to avoid different plugins using the same signs. (Yegappan
            Lakshmanan, closes #3652)
diff --git a/src/structs.h b/src/structs.h
index 6f50785..09a5665 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -740,10 +740,15 @@
     int		id;		/* unique identifier for each placed sign */
     linenr_T	lnum;		/* line number which has this sign */
     int		typenr;		/* typenr of sign */
+    char_u	*group;		/* sign group */
+    int		priority;	/* priority for highlighting */
     signlist_T	*next;		/* next signlist entry */
     signlist_T  *prev;		/* previous entry -- for easy reordering */
 };
 
+// Default sign priority for highlighting
+#define SIGN_DEF_PRIO	10
+
 /* type argument for buf_getsigntype() */
 #define SIGN_ANY	0
 #define SIGN_LINEHL	1