patch 8.0.0297: double free on exit when using a closure

Problem:    Double free on exit when using a closure. (James McCoy)
Solution:   Split free_al_functions in two parts. (closes #1428)
diff --git a/src/structs.h b/src/structs.h
index af0a6fd..45bd4a5 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -1337,6 +1337,7 @@
     int		uf_varargs;	/* variable nr of arguments */
     int		uf_flags;
     int		uf_calls;	/* nr of active calls */
+    int		uf_cleared;	/* func_clear() was already called */
     garray_T	uf_args;	/* arguments */
     garray_T	uf_lines;	/* function lines */
 #ifdef FEAT_PROFILE