Reorder the layers sent to HWC

Bug: 163076219
Test: manual
Test: I53fc851eca876d44ba7cb9347f1c62d659c38932

Remove OutputLayerCompositionState.z, LayerStateField::ZOrder, and
LayerState::mZOrder. Note that the layers are already stored in the
proper z-order (back to front). When sending them to HWC, specify order
with a local variable. The LayerState and -Field ZOrders were used to
treat layers with different z's as a differing field for comparison. But
in practice, a change in z order will change the geometry, resulting in
recreating all CachedSets. (Add a test to verify this changes the
NonBufferHash.)

Add peekThroughLayer to overrideInfo, which is used by Output to
reorder the layers and to change the blendMode so the peekThroughLayer
can be seen through it.

In Flattener::mergeWithCachedSets, update overrideInfo to include
peekThroughLayer, using a new accessor on CachedSet.

Add more info to CachedSet::dump().

Test updates:
- Remove tests that verify the state of OutputLayerCompositionState.z
and ZOrder.
- In LayerStackTest#getApproximateMatch_doesNotMatchManyDifferences, we
were setting kMaxDifferingFields + 1 fields to be different. Removing z
made these two stacks match, so replace with another (arbitrary) field.
- Fix OutputLayer tests to expect calling the new method
LayerFE::hasRoundedCorners

Latest patch set fixes a rebase error in includesOverrideInfoIfPresent.

Change-Id: I845a0f7016c57652045f6f5a082175304272347f
16 files changed