FSEvents: lock the CF run loop goroutine to its thread
FSEvents: lock the CF run loop goroutine to its thread

CoreFoundation run loops are tied to a particular thread. The goroutine
that sets up the run loop may get rescheduled on a different thread just
after adding the source. In that case the run loop would exit immediately.

Fix this by locking the goroutine to its thread. The thread is wasted on
the run loop anyway, so we might as well claim it earlier.

rjeczalik/notify,Zillode/notify