Fix Timer deadlock problem (cherrypick)

Make the wake socket non-blocking, so it doesn't deadlock if the
wake-receive socket isn't polled in time.  This can easily happen on
Solaris if more than 10 wakes are buffered up, while the XEvent loop is
busy processing.
For FieldWorks, this fixes FWNX-895 "Find in Reversal Indexes hangs, and
Find & Replace dialog box will not close or respond to further user
action".

Change-Id: I3704900a548a01eff2f0616cfa5caac1f1f0f3c1