patch 9.0.1391: "clear" macros are not always used

Problem:    "clear" macros are not always used.
Solution:   Use ALLOC_ONE, VIM_CLEAR, CLEAR_POINTER and CLEAR_FIELD in more
            places. (Yegappan Lakshmanan, closes #12104)
diff --git a/src/optionstr.c b/src/optionstr.c
index 0389ed0..f88325c 100644
--- a/src/optionstr.c
+++ b/src/optionstr.c
@@ -2714,13 +2714,7 @@
     char_u *cp;
 
     if (!((*varp)[0]) || ((*varp)[0] == '0' && !((*varp)[1])))
-    {
-	if (curbuf->b_p_vsts_array)
-	{
-	    vim_free(curbuf->b_p_vsts_array);
-	    curbuf->b_p_vsts_array = 0;
-	}
-    }
+	VIM_CLEAR(curbuf->b_p_vsts_array);
     else
     {
 	for (cp = *varp; *cp; ++cp)
@@ -2755,13 +2749,7 @@
     char_u *cp;
 
     if (!((*varp)[0]) || ((*varp)[0] == '0' && !((*varp)[1])))
-    {
-	if (curbuf->b_p_vts_array)
-	{
-	    vim_free(curbuf->b_p_vts_array);
-	    curbuf->b_p_vts_array = NULL;
-	}
-    }
+	VIM_CLEAR(curbuf->b_p_vts_array);
     else
     {
 	for (cp = *varp; *cp; ++cp)