FileManagerListJob: use a semaphore for locking
The previous implementation from a0fd2014 and 73fb3cd6 used a mutex
and would attempt to unlock it in the helper thread after locking
it in the main thread. This is UB and triggered an assert in libc++
on Mac (observed on OS X 10.9 and affecting an as yet unknown number of
newer OS versions).