osmo_io: Move notify_connected function to backend

This relocation is necessary as the backend (osmo_io_fd or
osmo_io_uring) requires a different approach in handling connect
notifications. As a result, a function call has been introduced to
struct iofd_backend_ops.

In a subsequent patch, the process for the osmo_io_uring backend will
be modified to handle SCTP connect notifications using poll/select.

If connect notification is requested using poll/select, the file
descriptior must be registered to osmo_fd, using osmo_fd_register. If
read / write notification is requested by application, the file
descriptior must be registered also. A flag is used prevent calling
osmo_fd_register / osmo_fd_unregister multiple times, which would cause
a crash.

Change-Id: I905ec85210570aff8addadfc9603335d04eb057a
Related: OS#5751
diff --git a/src/core/osmo_io.c b/src/core/osmo_io.c
index 9de9e2e..71249cf 100644
--- a/src/core/osmo_io.c
+++ b/src/core/osmo_io.c
@@ -781,7 +781,8 @@
 void osmo_iofd_notify_connected(struct osmo_io_fd *iofd)
 {
 	OSMO_ASSERT(iofd->mode == OSMO_IO_FD_MODE_READ_WRITE);
-	osmo_iofd_ops.write_enable(iofd);
+	OSMO_ASSERT(osmo_iofd_ops.notify_connected);
+	osmo_iofd_ops.notify_connected(iofd);
 }