libosmo-trx/ep: flush pending TRXC messages on endpoint teardown
osmo_trx_ep_close() used to drop any still-queued ctrl socket Tx data via osmo_iofd_free(), including a 'goodbye' TRXC message (i.e. "CMD POWEROFF") that may have just been enqueued right before teardown.
Detach such a ctrl_iofd from the endpoint (which may be freed right after osmo_trx_ep_close() returns) and let it live on its own, driven by the same event loop, until the pending write(s) complete (or fail), at which point it closes and frees itself. Data sockets and pending Tx data batches are still dropped immediately, as before.
This follows the async-flush pattern used by osmo-pcap's osmo_pcap_wr_file_flush(), adapted to the osmo_io API (there is no osmo_iofd_flush()).