Introduce an image preview view

A preparation step for image preview UI update.

A new view, ImagePreviewView, that encapsulates image preview
grid UI is created. The view has a generalized interface for image
loading: it accepts a list of image URIs and a suspend function that
would perform actual image loading.

The image loading is still delegated to
ChooserContentPreviewCoordinator class that has the following collateral
changes:
 - all UI logic is moved out of the class either into the new view or
   into ChooserContentPreviewUI;
 - mOnSingleImageSuccessCallback is removed and replaced with a
   separate callback (see description below).

ChooserActivity used
ChooserContentPreviewCoordinator#mOnSingleImageSuccess as a signal to
start lisneting for the shared element transition animation (SETA) target
readiness. With all image preview UI logic now being encapsulated in the
new ImagePreviewView view, the new view triggers a SETA target readiness
callback instead, if configured. As ChooserActivity explicitely resumes
SETA for a non-image preview, ChooserContentPreviewCoordinator always
triggers image callback and the new view always notify about SETA target
readiness, we should be fine with remplacing the after-image-loaded
callback.

Flag: IntentResolver package entirely behind the CHOOSER_UNBUNDLED which is in teamfood

Bug: 262280076
Test: manual tests for all previe types, multi- and single profile and
SETA (share a shcreenshot) tests.
Test: delay image loading and test that in all cases SETA is not get
stuck.
Test: atest IntentResolverUnitTests

Change-Id: I081ab98c2bcb24cd2ad96b508ab559d7775aeaf4
9 files changed