Make the edge-triggered nature of watched_fd handlers more explicit

And fix an issue with occasional valigrind warnings about use
of an uninitialised pollfd.revents field.