BUILD: lua: silence some compiler warnings about potential null derefs (#2)

Here we make sure that appctx is always taken from the unchecked value
since we know it's an appctx, which explains why it's immediately
dereferenced. A missing test was added to ensure that task_new() does
not return a NULL.

This may be backported to 1.8.
diff --git a/src/hlua.c b/src/hlua.c
index aaa8840..49aee74 100644
--- a/src/hlua.c
+++ b/src/hlua.c
@@ -2361,7 +2361,7 @@
 		return 2;
 	}
 
-	appctx = objt_appctx(s->si[0].end);
+	appctx = __objt_appctx(s->si[0].end);
 
 	/* Check for connection established. */
 	if (appctx->ctx.hlua_cosocket.connected) {
@@ -2473,7 +2473,7 @@
 	}
 
 	hlua = hlua_gethlua(L);
-	appctx = objt_appctx(s->si[0].end);
+	appctx = __objt_appctx(s->si[0].end);
 
 	/* inform the stream that we want to be notified whenever the
 	 * connection completes.
@@ -5723,6 +5723,9 @@
 		WILL_LJMP(luaL_error(L, "Lua out of memory error."));
 
 	task = task_new(MAX_THREADS_MASK);
+	if (!task)
+		WILL_LJMP(luaL_error(L, "Lua out of memory error."));
+
 	task->context = hlua;
 	task->process = hlua_process_task;