MINOR: stream-int: add new function si_detach_endpoint()

This function only detaches the endpoint from the stream-int and
optionally returns the original pointer. This will be needed to
steal idle connections from other connections.
diff --git a/include/proto/stream_interface.h b/include/proto/stream_interface.h
index 449d5e6..6e4cfe8 100644
--- a/include/proto/stream_interface.h
+++ b/include/proto/stream_interface.h
@@ -129,6 +129,19 @@
 	si->state = si->prev_state = state;
 }
 
+/* only detaches the endpoint from the SI, which means that it's set to
+ * NULL and that ->ops is mapped to si_embedded_ops. The previous endpoint
+ * is returned.
+ */
+static inline enum obj_type *si_detach_endpoint(struct stream_interface *si)
+{
+	enum obj_type *prev = si->end;
+
+	si->end = NULL;
+	si->ops = &si_embedded_ops;
+	return prev;
+}
+
 /* Release the endpoint if it's a connection or an applet, then nullify it.
  * Note: released connections are closed then freed.
  */
@@ -149,8 +162,7 @@
 			appctx->applet->release(appctx);
 		appctx_free(appctx); /* we share the connection pool */
 	}
-	si->end = NULL;
-	si->ops = &si_embedded_ops;
+	si_detach_endpoint(si);
 }
 
 /* Turn a possibly existing connection endpoint of stream interface <si> to