Use listen 1.0 for the moment

This is just to get the tests running again, since 2.0 is out now
Fix race condition

If we don't synchronize mutations to the files/directories arrays, then
the thread in the polling watcher could call check_stale while we're
in this critical region, causing the watcher to be marked stale even
though we intended to overwrite the stored mtime in subjects_changed.

This seems to be what was causing intermittent failures in
AppTest#test_changing_the_Gemfile_restarts_the_server.