Set cache dirty on layer creation/destruction

The adapter misses an edge cases where a transaction both destroys and
creates a layer. Under these conditions, assignHwc1LayerIds() is not
called. mHwc1LayerMap contains reference to destroyed layers
and ultimately lead to segfault.

Test: Angler eng device and AUPT.
Change-Id: I96bcbabf74a80cc87df796c0bc84b84e2bda8614
diff --git a/services/surfaceflinger/DisplayHardware/HWC2On1Adapter.cpp b/services/surfaceflinger/DisplayHardware/HWC2On1Adapter.cpp
index 7322c13..92bcb77 100644
--- a/services/surfaceflinger/DisplayHardware/HWC2On1Adapter.cpp
+++ b/services/surfaceflinger/DisplayHardware/HWC2On1Adapter.cpp
@@ -607,6 +607,7 @@
     mDevice.mLayers.emplace(std::make_pair(layer->getId(), layer));
     *outLayerId = layer->getId();
     ALOGV("[%" PRIu64 "] created layer %" PRIu64, mId, *outLayerId);
+    mZIsDirty = true;
     return Error::None;
 }
 
@@ -630,6 +631,7 @@
         }
     }
     ALOGV("[%" PRIu64 "] destroyed layer %" PRIu64, mId, layerId);
+    mZIsDirty = true;
     return Error::None;
 }