Reland "Add a DisplayCapability for multi-threaded present"

Originally landed as I5dbb01fc23abd5e0108c565f96d25e62c77fc16d and
previously reverted in I6265f8de3db31f07506906cee82a91fe3baac0bc due to
timeline constraints.

Add a test presenting from multiple threads. Split up execute() so that
it can be called for a single display. Update MultiThreadedPresent
(test) to offload presentDisplay to a separate thread, similar to how
Ib9d074671e32c95875ef7e0791dd95d6e595e47a does it, as described in
go/multi-threaded-present.

Bug: 259132483
Bug: 284156408
Fixes: 251842321
Fixes: 295841597
Test: VtsHalGraphicsComposer3_TargetTest
Change-Id: If975ee9bb0b9c6f64ef50401e2aee32f934e3f08
3 files changed