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/crypt.c b/src/crypt.c
index 8175906..dfbf02c 100644
--- a/src/crypt.c
+++ b/src/crypt.c
@@ -118,6 +118,9 @@
 	NULL, NULL,
 	crypt_blowfish_encode, crypt_blowfish_decode,
     },
+
+    /* NOTE: when adding a new method, use some random bytes for the magic key,
+     * to avoid that a text file is recognized as encrypted. */
 };
 
 #define CRYPT_MAGIC_LEN	12	/* cannot change */
@@ -349,10 +352,7 @@
 
     state = crypt_create(method_nr, key, salt, salt_len, seed, seed_len);
     if (state == NULL)
-    {
-	vim_free(*header);
-	*header = NULL;
-    }
+	VIM_CLEAR(*header);
     return state;
 }