Simplify the drag logic for edit mode.

The main changes here are:
- Use a single drag listener for the grid instead of one per tile. This simplifies the code and makes it easier to detect if the user is aiming at the left or right side of a tile
- Remove the tile list from the drag state and instead have the list listen to drag events
- Add spacers to empty spaces of the row to enable users to move a tile in that spot

Bug: 346991759
Flag: com.android.systemui.qs_ui_refactor
Test: DragAndDropStateTest
Test: EditTileListStateTest
Test: DragAndDropTest

Change-Id: I49cfdfe0f3c9a3513a4939867558be16d9ba9454
11 files changed