Switch from events to setting service flags.

Instead of firing events on the topology, we're switching to setting
flags on the service and unit models in the DB. That way the data is
persistent across state changes (i.e., when a user switches from
service view to machine view) and we maintain one single source of
truth.
Running two loops might be more performant based on how this lookup table is built. Might be something to look into later.

Could you also add a comment as to why you're updating both units.