watchman: break up listener_thread_event
watchman: break up listener_thread_event

Summary:
This has evolved to become a bit overloaded over time;
originally it was the event used to knock the singular accept
loop out of its sleep as part of the shutdown procedure, but
these days there can be up to three different loops:

* The unix domain listener
* The optional experimental tcp listener
* The named pipe listener(S) - multiple threads

When we only had either pipes or sockets things were a bit simpler,
but now that we have both on windows we have a real problem in
terms of managing the socket loops: in order for the shutdown
event to participate in `poll(2)` it needs to be an instance
of the `PipeEvent` from stream_unix, but on windows we build a
win32 event handle that isn't compatible with this.

To resolve this, we need to conceptually split the event so that
we can have one per accept loop and that is what this diff does.

Reviewed By: chadaustin

Differential Revision: D21036693

fbshipit-source-id: 2b5bf71d5616c71b47d3c2333c206667185b83ec

facebook/watchman,nodakai/watchman,nodakai/watchman,nodakai/watchman,facebook/watchman,facebook/watchman,facebook/watchman,nodakai/watchman,facebook/watchman,facebook/watchman,facebook/watchman,nodakai/watchman,nodakai/watchman,facebook/watchman,nodakai/watchman,nodakai/watchman,facebook/watchman,nodakai/watchman