BUG/MINOR: spoe: check buffer size before acquiring or releasing it

In spoe_acquire_buffer and spoe_release_buffer, instead of checking the buffer
against buf_empty, we now check its size. It is important because when an
allocation fails, it will be set to buf_wanted. In both cases, the size is 0.

It is a proactive bug fix, no real problem was observed till now. It cannot be
backported as is in 1.7 because of all changes made on the SPOE in 1.8.
diff --git a/src/flt_spoe.c b/src/flt_spoe.c
index 5a8c9e6..ea4675c 100644
--- a/src/flt_spoe.c
+++ b/src/flt_spoe.c
@@ -2695,7 +2695,7 @@
 static int
 spoe_acquire_buffer(struct buffer **buf, struct buffer_wait *buffer_wait)
 {
-	if (*buf != &buf_empty)
+	if ((*buf)->size)
 		return 1;
 
 	if (!LIST_ISEMPTY(&buffer_wait->list)) {
@@ -2725,7 +2725,7 @@
 	}
 
 	/* Release the buffer if needed */
-	if (*buf != &buf_empty) {
+	if ((*buf)->size) {
 		b_free(buf);
 		offer_buffers(buffer_wait->target,
 			      tasks_run_queue + applets_active_queue);