Simplify watching

The diff is daunting, but I swear it simplifies things:

* Removes an extra goroutine that was used by the watcher goroutine and some sync/atomic fun within.
* Increases debug logging around task handling.
* Simplifies/clarifies code that determines whether or not a key returned by an etcd watch is a claimable task.