Defer closing replay files

close()ing replay files after storing a message can block on i/o under
certain conditions. Stuff the fds of the opened files into a list and
process that list only when a poll_wait() times out, which means there
are no messages waiting to be processed. Under flood conditions where
the list is full of open fds, they'll be reused when storing new
messages.
1 job for master in 8 minutes and 7 seconds (queued for 30 seconds)