Selectively refresh screen

When sync events produce results that modify the local db state,
record those events and have the screen widgets use that info
to decide whether to refresh (if relevant data are updated).

In practice this should mean far fewer screen refreshes (which
require costly db queries and manifest as UI pauses).

Change-Id: Iefca75ef3d727236b8e4d1199fd4301d25822fef
Merge "Selectively refresh screen"