patch 8.0.1496: clearing a pointer takes two lines

Problem:    Clearing a pointer takes two lines.
Solution:   Add VIM_CLEAR() and replace vim_clear(). (Hirohito Higashi,
            closes #2629)
diff --git a/src/macros.h b/src/macros.h
index 6e4b813..43d6c94 100644
--- a/src/macros.h
+++ b/src/macros.h
@@ -379,3 +379,14 @@
 # define mch_enable_flush()
 # define mch_disable_flush()
 #endif
+
+/*
+ * Like vim_free(), and also set the pointer to NULL.
+ */
+#define VIM_CLEAR(p) \
+    do { \
+	if ((p) != NULL) { \
+	    vim_free(p); \
+	    (p) = NULL; \
+	} \
+    } while (0)