Switch to a new `input.fdopen` API & wrapper so we can keep the fds opened by `fbink_input_scan` instead of closing them to re-open them right after that...
This should hopefully help on racy zForce devices that attempt to handle power management when opening/closing the device. We know this sometimes horribly fail to re-activate the IR grid (c.f., our manual activation on resume), but this apparently could also happen here (re: #11844) because of the quick succession of open->close->open.
logger.dbg("ExternalKeyboard: USB keyboard",keyboard_info.event_path,"was connected; total:",ExternalKeyboard.connected_keyboards)
logger.dbg("ExternalKeyboard: USB keyboard",keyboard_info.name,"@",keyboard_info.event_path,"was connected; total:",ExternalKeyboard.connected_keyboards)