* add a basic select() loop for the read FD to see if it's ready
* optionally block in md_read() even if we timeout - this is used for
the md_command() side of things
* md_handle_input() however doesn't block and will happily timeout
so the loop can run and the periodic function can run.
This indeed seems to work. It's a bit dirty, but it at least stops
the main loop from being fully blocking and that's super useful for
modules that wish to schedule background work.