Support multi-display on Cuttlefish w/ Gfxstream (Attempt #2)

Compare snapshot 1 vs snapshot 2 to see diff vs attempt #1 from
aosp/1777847.

This change moves the existing display discovery steps from
GuestComposer and HostComposer into a separate findDisplayConfigs()
which can be used by both composers. This allows Device to initialize
displays using Cuttlefish's device configs while running with
HostComposer with Gfxstream. This has the added benefits of making
Device the sole creator of displays and removing the need to pass the
awkward `AddDisplayToDeviceFunction`.

Bug: b/171305898
Test: launch_cvd
Test: launch_cvd --display0=<> --display1=<>
Test: launch_cvd --gpu_mode=gfxstream
Test: launch_cvd --gpu_mode=gfxstream --display0=<> --display1=<>
Change-Id: I003744fddc5158af94f5495f326adb2a5bdb6290
Merged-In: I003744fddc5158af94f5495f326adb2a5bdb6290
14 files changed