Send watch notification when a task doesn't exist

This involved fixing request/response pairing in general because
SendSyntheticValueChanged can result in multiple kinds of response,
which we didn't have a way to handle in the existing code.

Hrm.  OK.  This doesn't feel right though.  Shouldn't `Request`s produce a response of a particular type?  Why isn't this simply encoded in `Request`s?  Why are `Request`s independent of `Response`s?