Prevent SurfaceView from drawing over parent surface insets

Parent SurfaceView to a bounds layer that enforces a crop preventing it
from drawing over the surface insets. The bounds layer crop is set to the
surface insets and updated when the parent surface size changes or the
parent surface insets change.

If the SurfaceView children are reparented to another client surface
then ensure the SurfaceView relative layer info is updated correctly.

Bug: 132205507
Test: go/wm-smoke
Test: test preserve surfaces codepath with split screen and ensure relative z is preserved
Test: test surfaceview apps, youtube, maps & camera.
Test: try to repro maps pip issue described in bug

Change-Id: I14c2f7603345ad89f0af4db48150b05d8ada602a
11 files changed