Add client watch capability

(Only the last commit is new to this PR. Others are pending in #493.)