MAJOR: htx: Remove the EOM block type and use HTX_FL_EOM instead

The EOM block may be removed. The HTX_FL_EOM flags is enough. Most of time,
to know if the end of the message is reached, we just need to have an empty
HTX message with HTX_FL_EOM flag set. It may also be detected when the last
block of a message with HTX_FL_EOM flag is manipulated.

Removing EOM blocks simplifies the HTX message filling. Indeed, there is no
more edge problems when the message ends but there is no more space to write
the EOM block. However, some part are more tricky. Especially the
compression filter or the FCGI mux. The compression filter must finish the
compression on the last DATA block. Before it was performed on the EOM
block, an extra DATA block with the checksum was added. Now, we must detect
the last DATA block to be sure to finish the compression. The FCGI mux on
its part must be sure to reserve the space for the empty STDIN record on the
last DATA block while this record was inserted on the EOM block.

The H2 multiplexer is probably the part that benefits the most from this
change. Indeed, it is now fairly easier to known when to set the ES flag.

The HTX documentaion has been updated accordingly.
diff --git a/src/fcgi-app.c b/src/fcgi-app.c
index 0e7527b..e3acd16 100644
--- a/src/fcgi-app.c
+++ b/src/fcgi-app.c
@@ -352,7 +352,7 @@
 		sl = http_get_stline(htx);
 		if (sl &&
 		    (sl->flags & (HTX_SL_F_XFER_LEN|HTX_SL_F_CLEN|HTX_SL_F_CHNK)) == HTX_SL_F_XFER_LEN &&
-		    htx_get_tail_type(htx) == HTX_BLK_EOM) {
+		    (htx->flags & HTX_FL_EOM)) {
 			struct htx_blk * blk;
 			char *end;
 			size_t len = 0;
@@ -360,7 +360,7 @@
 			for (blk = htx_get_first_blk(htx); blk; blk = htx_get_next_blk(htx, blk)) {
 				enum htx_blk_type type = htx_get_blk_type(blk);
 
-				if (type == HTX_BLK_EOM)
+				if (type == HTX_BLK_TLR || type == HTX_BLK_EOT)
 					break;
 				if (type == HTX_BLK_DATA)
 					len += htx_get_blksz(blk);