Save timeout across multiple calls to Selector::execute() #4088

The value of the timeout argument to select() is undefined after the
call returns. Save the desired timeout in the Selector object so that
multiple calles to Selector::execute() behave in a defined manner.
This will be useful for some new users of Selector.
Use Selector class in more places to avoid buffer overflows. #4088

Using select() with simple fd_sets leads to buffer overflows if any of
the selected fds have values greater than 1023. We've seen a crash in
the procd communication code because of this. Now, we use the Selector
class everywhere outside of the checkpointing code.