SF: Flush out SurfaceFlingerFactory

A factory is now passed to the SurfaceFlinger constructor, either one
created specifically to handle normal service initialization, or one
created for the unit tests. SurfaceFlinger uses the factory interface to
construct most of its instances.

This allows (almost) all the top level instances SurfaceFlinger creates
to be replaced as needed by interface-equivalents, such as GMocks in the
case of the unit test.

An older set of factory functions for two specific types is removed in
favor of the new factory interface.

Test: atest libsurfaceflinger_unittest
Test: Marlin boots and appears usable
Bug: None

Change-Id: I070c94effc54ddfe5366978613283525d7a7bf4a
5 files changed