SF: Move HWComposer ownership to CompositionEngine

Move ownership of the HWComposer pointer to CompositionEngine, and
introduce an abstract interface for HWComposer so that CompositionEngine
does not need to be linked against the implementation.

A future change will move the HWComposer and related implementation
details into a new "backend" library, and which point the
ComposionEngine library can depend on it.

A mock HWComposer is also introduced locally to the CompositionEngine
tests, but this too will be eventually moved to the backend.

Test: atest libsurfaceflinger_unittest libcompositionengine_test
Bug: 121291683
Change-Id: I49c6d8c9a83129c45a51dc5bed47f6a980f66eb0
15 files changed