Drag & drop to reorder and remove widget from glanceable hub

Added the infrastructure to handle drag & drop in the glanceable
hub grid when in edit mode to reorder and remove widgets.
Defined an edit state for the content list to store the ongoing
changes during dragging. On drag ends, persisit the state to db.
Only widget card is draggable and can be the drop target.

Bug: b/310969547
Flag: ACONFIG com.android.systemui.communal_hub DEVELOPMENT
Test: atest CommunalWidgetDaoTest
Test: atest CommunalWidgetRepositoryImplTest
Test: atest CommunalInteractorTest
Change-Id: I78357990e1494d784e7ccc3787c6d61019a5dd8d
10 files changed