First attempt at doing some async i/o, just using select. Performance seems heavily dependent on the timeout.
Fixed signal handling in udr threads so exits cleanly, no need for async i/o at this moment.

Now UDR should exit with the same status as the underlying rsync process.

Still an issue with not exiting cleanly if one of the underlying rsync processes are killed out from under UDR.
Now exits if the underlying rsync or ssh processes are killed. It does take a ltitle of time for things to timeout.