extend the iomux_write API to minimize copies/moves and allowing more data to be queued

this will also let us avoid polling for data from all managed filedescriptors