Make compound queries update reliably whenever a subquery result watcher changes.

This makes compound queries generally update on subquery changes regardless of whether any subquery has new results. Previously a compound query only updated after one of its subqueries did an update which actually produced new results, which meant that if a result watcher on the compound query changed but nothing about the subqueries changed, an update() call on a subquery would not trigger an update (and result watcher callbacks) on the compound query. Now in this case the compound query gets an automatic update() call regardless of whether the subquery update actually goes to the backend.