BUG/MAJOR: connections: Close the connection before freeing it.

In si_release_endpoint(), if the end point is a connection, because we don't
know which mux to use it, make sure we close the connection before freeing it,
or else, we'd have a fd left for polling, which would point to a now free'd
connection.

This should be backported to 1.9.
diff --git a/include/proto/stream_interface.h b/include/proto/stream_interface.h
index f4ba6ee..cdc2245 100644
--- a/include/proto/stream_interface.h
+++ b/include/proto/stream_interface.h
@@ -173,8 +173,11 @@
 		if (appctx->applet->release && si->state < SI_ST_DIS)
 			appctx->applet->release(appctx);
 		appctx_free(appctx); /* we share the connection pool */
-	} else if ((conn = objt_conn(si->end)))
+	} else if ((conn = objt_conn(si->end))) {
+		conn_stop_tracking(conn);
+		conn_full_close(conn);
 		conn_free(conn);
+	}
 	si_detach_endpoint(si);
 }