Linux - use select to see if any watch data

With this fix, we can check if Close() has been called on the
Watcher after every select. Before the Read would block indefinately,
possibly hanging forever (user calling watch.Close() when no events
available).