SF: only hole punch through opaque layers

Bug: 163076219
Test: manual

The hole punch requires that the layer with the hole be opaque where the
PIP is (or more accurately, where its corners are), so that it will
cover up the square corners. Only add a hole punch if a layer in the
prior CachedSet is opaque and contains the PIP's area.

Consider a layer with rounded corners non-opaque for simplicity and
practical reasons (it is an unexpected use case).

Consider the very first layer to be opaque because nothing is drawn
behind it (besides the layer that peeks through the hole punch). This
allows apps like Gmail, which may not report its layer to be opaque, to
support using a hole punch.

Change-Id: I593bedb1308cf318431b5ef7f177f20d91102a9b
3 files changed