Refactor communal hub enablement logic

This introduces the idea of suppressor classes, to encapsulate logic for
suppressing the hub. Each suppressor provides a reason for suppression,
and each reason specifies which features it would like to suppress.

This creates a single source of truth for whether the hub is enabled or
not, and which features are enabled.

We also introduce android auto suppression behind a flag.

Bug: 396460215
Test: WIP
Flag: com.android.systemui.glanceable_hub_v2
Change-Id: I2dc742b79f8344ed427ce75a9e312375c9cafacd
46 files changed