Glimpse: Use StateFlow instead of SharedFlow

StateFlows are `distinctUntilChanged` by default,
that means we avoid possibly passing around new data
with no changes.

The downside is that StateFlow requires a "default" value
so we must implement a wrapper class around the actual values
from the query or an empty/default value so that the different
states can be handled properly in app.

Change-Id: Ib6033c36297be5c27e70ace3f1478ea0c22b2c5e
7 files changed