[3/n] Implement Letterbox Surfaces lifecycle

Creates a TransitionObserver to observe existing Transactions to
identify events related on the letterbox surface lifecycle.

Creates LetterboxController which encapsulates operations on the
Letterbox surfaces in Shell. The current implementation uses a
single surface.

Flag: com.android.window.flags.app_compat_refactoring
Fix: 370997904
Test: m

Change-Id: I5908f110d2b0a3e464810196c13508408c662399
4 files changed