Store communal widget info in database and support editing widgets

- Use the Room database to store default and user selected
  widgets and their orders, so they can be persisted to provide
  a customizable glaceable hub.
- Updated the CommunalWidgetRepository to return a flow of
  active widgets stored in db. The communal hub will collect
  a transformed flow of this to render the cards.
- Added a + and x button to prototype adding a stopwatch
  widget and removing a widget from the grid. This will
  be updated when we integrate with the widget picker.

Bug: b/306500486
Flag: ACONFIG com.android.systemui.communal.communal_hub DEVELOPMENT
Test: atest CommunalWidgetRepositoryImplTest
Test: atest CommunalWidgetDaoTest
Test: on device
Change-Id: Ie9d1d60e50fe669a7b9cfbc0ee12282a28170cbd
21 files changed