Create Surfaces, Transactions and SurfaceControls in Window Manager via a factory

Prevent unit tests from calling native code. This will remove some SurfaceControl and Surface
finalizer error logs when running tests. Remaining accesses to Surface are in the Display package.

Test: presubmit
Change-Id: I7e257b03cd6411423885a0bd94ec846fc8afbdf7
30 files changed