watchman-make: avoid dispatching for state-enter changes
watchman-make: avoid dispatching for state-enter changes

Summary:
state-enter and state-leave will wake up subscriptions and
deliver a response that has no files listed.   These events are
triggered in the FB source control deployment when mercurial
transactions are initiated and completed, so these occur around
eg: `commit` and `amend`, and then shortly afterwards when our
background `commit cloud` sync process kicks in.

`watchman-make` was blindly assuming that any wakeup from the
subscription channel was worth running the associated command,
which wasn't true in this situation.

In addition to state enter/leave, watch cancellations can also
deliver a response with an empty file list.  Rather than trying
to continue, let's terminate the process if that happens.

Reviewed By: xixixao

Differential Revision: D19222234

fbshipit-source-id: 06d7ddd9d061f7a21b93b8e4d1d79d3636e9998d

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