patch 8.1.0126: various problems with 'vartabstop'

Problem:    Various problems with 'vartabstop'.
Solution:   Fix memory leak.  Fix crash. Add a few more tests. (Christian
            Brabandt, closes #3076)
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index 3384fe8..a30178b 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -866,7 +866,6 @@
 	{
 	    set_string_option_direct((char_u *)"vts", -1, new_ts_str,
 							OPT_FREE|OPT_LOCAL, 0);
-	    vim_free(new_ts_str);
 	    curbuf->b_p_vts_array = new_vts_array;
 	    vim_free(old_vts_ary);
 	}
@@ -877,6 +876,7 @@
 	    curbuf->b_p_ts = tabstop_first(new_vts_array);
 	    vim_free(new_vts_array);
 	}
+	vim_free(new_ts_str);
     }
 #else
     curbuf->b_p_ts = new_ts;