Listen for a signal to prevent a deadlock

If the user does not specify any dependencies, the watcher has no data to return, which results in a deadlock. This prevents such a case by  adding a signal channel listener.

/cc @armon @mitchellh @ryanuber