Modify 2-column layout to handle both dual and split shade

The two column layout mode for flexiglass lockscreen assumes that the
only supported notification position is start aligned notifications.
This is problematic becuase notification alignment on lockscreen is
aligned the same way as they are in the shade. Since the position of
notifications in the shade is becoming dependent on the dual-shade
user setting, we must support both notification positions seamlessly.

This is slightly tricky because notification alignment (and therefore
shade mode) informs other design decisions like placement of the big
clock and the clock size in certain scenarios. As a result, this change
moves responsibility for layout of lockscreen elements above the lock
icon away from LockscreenSceneLayout and into a new element responsible
for layout of the "UpperRegion". Doing this reduces somewhat the the
flexibility afforded by using a Compose Layout, but ends up drastically
simplifying LockscreenSceneLayout and it's associated ViewModel as well
as making each version of the layout easier to reason about.

To facilitate this shift in responsibilities, this change also migrates
the media and notification elements to use the LockscreenElementFactory.
Further, we are able to simplify LockscreenContentViewModel by moving
some of the hydrated layout properties into a new ViewModel.

Bug: 432451019
Test: Manually checked 2-column layout
Flag: com.android.systemui.scene_container
Change-Id: Ibbc904fb8261f3acb4af17f8564e21e6ba35327a
26 files changed