Changed definition of macro 'l_isfalse'

The old definition did one test for nil, but three tests for the all
too common booleans (and two tests for other values); this definition
does two tests for all values.
diff --git a/lobject.h b/lobject.h
index 0c38aff..7d30b46 100644
--- a/lobject.h
+++ b/lobject.h
@@ -216,7 +216,7 @@
 
 #define bvalueraw(v)	((v).b)
 
-#define l_isfalse(o)	(ttisnil(o) || (ttisboolean(o) && bvalue(o) == 0))
+#define l_isfalse(o)	(ttisboolean(o) ? bvalue(o) == 0 : ttisnil(o))
 
 #define setbvalue(obj,x) \
   { TValue *io=(obj); val_(io).b=(x); settt_(io, LUA_TBOOLEAN); }