MINOR: channel/htx: Add the HTX version of channel_truncate/erase

The function channel_htx_truncate() can now be used on HTX buffer to truncate
all incoming data, keeping outgoing one intact. This function relies on the
function channel_htx_erase() and htx_truncate().

This patch may be backported to 1.9. If so, the patch "MINOR: channel/htx: Add
the HTX version of channel_truncate()" must also be backported.
diff --git a/include/proto/channel.h b/include/proto/channel.h
index 0cd842a..d16b0e7 100644
--- a/include/proto/channel.h
+++ b/include/proto/channel.h
@@ -548,6 +548,12 @@
 	b_reset(&chn->buf);
 }
 
+static inline void channel_htx_erase(struct channel *chn, struct htx *htx)
+{
+	htx_reset(htx);
+	channel_erase(chn);
+}
+
 /* marks the channel as "shutdown" ASAP for reads */
 static inline void channel_shutr_now(struct channel *chn)
 {
@@ -877,6 +883,17 @@
 	chn->buf.data = co_data(chn);
 }
 
+static inline void channel_htx_truncate(struct channel *chn, struct htx *htx)
+{
+	if (!co_data(chn))
+		return channel_htx_erase(chn, htx);
+
+	chn->to_forward = 0;
+	if (htx->data == co_data(chn))
+		return;
+	htx_truncate(htx, co_data(chn));
+}
+
 /* This function realigns a possibly wrapping channel buffer so that the input
  * part is contiguous and starts at the beginning of the buffer and the output
  * part ends at the end of the buffer. This provides the best conditions since