REORG/MEDIUM: channel: only use chn_prod / chn_cons to find stream-interfaces

The purpose of these two macros will be to pass via the session to
find the relevant stream interfaces so that we don't need to store
the ->cons nor ->prod pointers anymore. Currently they're only defined
so that all references could be removed.

Note that many places need a second pass of clean up so that we don't
have any chn_prod(&s->req) anymore and only &s->si[0] instead, and
conversely for the 3 other cases.
diff --git a/src/hlua.c b/src/hlua.c
index 0aa92e9..570c9b4 100644
--- a/src/hlua.c
+++ b/src/hlua.c
@@ -1439,7 +1439,7 @@
 	 */
 	if (socket->s->req.buf->size == 0) {
 		if (!session_alloc_recv_buffer(socket->s, &socket->s->req.buf)) {
-			socket->s->req.prod->flags |= SI_FL_WAIT_ROOM;
+			chn_prod(&socket->s->req)->flags |= SI_FL_WAIT_ROOM;
 			goto hlua_socket_write_yield_return;
 		}
 	}
@@ -1734,7 +1734,7 @@
 	ip      = MAY_LJMP(luaL_checkstring(L, 2));
 	port    = MAY_LJMP(luaL_checkinteger(L, 3));
 
-	conn = si_alloc_conn(socket->s->req.cons, 0);
+	conn = si_alloc_conn(chn_cons(&socket->s->req), 0);
 	if (!conn)
 		WILL_LJMP(luaL_error(L, "connect: internal error"));
 
@@ -2328,7 +2328,7 @@
 	 */
 	if (chn->chn->buf->size == 0) {
 		if (!session_alloc_recv_buffer(chn->s, &chn->chn->buf)) {
-			chn->chn->prod->flags |= SI_FL_WAIT_ROOM;
+			chn_prod(chn->chn)->flags |= SI_FL_WAIT_ROOM;
 			WILL_LJMP(hlua_yieldk(L, 0, 0, hlua_channel_send_yield, TICK_ETERNITY, 0));
 		}
 	}