Fix segfault in Lisp when calling variadic function.

Originally a segfault could occur due to an issue with how arguments
were cleaned up after a variadic function call. After the function
call the following assembly was generated:

add esp, nargs

Where nargs was the number of arguments passed to the function. This
did not take in to account that for variadic functions, the last
several arguments are CONS'd into one argument, meaning that calling a
variadic function with <>1 variadic argument would result in a broken
stack.

Specifically this issue came up in the implementation of REDUCE, which
relied on the variadic FUNCALL.
diff --git a/lib/lisp/std/list-functions.lisp b/lib/lisp/std/list-functions.lisp
index 7bb22a7..f25ceb5 100644
--- a/lib/lisp/std/list-functions.lisp
+++ b/lib/lisp/std/list-functions.lisp
@@ -29,7 +29,8 @@
 arguments. The first argument will be the result so far and the second
 will be the n-th item of the list. For the first item of the list, the
 result so far will be `initial-value`, or `nil` by default."
-  (if (not list)
-      initial-value
-      (reduce fun (cdr list)
-              (funcall fun initial-value (car list)))))
+  (if (nilp list)
+      initial-value 
+	  (reduce fun (cdr list)
+			  (funcall fun initial-value
+					   (car list)))))