Make WindowContainer#mPendingTransaction optional

This can reduce 70+ unused Transaction objects.

So far the only used pending transaction is the instance in
DisplayContent. The centralized transaction was to avoid applying
unexpected order or incomplete surface operations.

In general, it is not expected to care about the surface operations
before a window container is attached. Because when a container is
attached, the surface attributes will still be updated according to
its current configuration.

After this change, the mPendingTransaction of non-display container
will only be used when creating display area of a new display. And
then it will be null out immediately when attaching to display.

Bug: 163976519
Bug: 132320879
Test: atest WindowContainerTests

Change-Id: I7c2155bee55d260dbb72cf1f5f58c143f9dd03c6
3 files changed