SF: Present before signalling presentation done

In doing the refactor, I had effectively swapped the calls to
HWComposer::presentAndGetReleaseFences() and
DisplaySurface::onFrameCommitted() so that onFrameCommitted was being
called before the display was presented.

If client composition was used for those frames, the result was that the
GPU composed buffer on display could be written to (cleared) before it was
actually replaced by a new buffer.

Bug: 138914274
Test: Unable to reproduce black scanlines in Hangouts on Walleye
Change-Id: I13625f124130826a5f80337b74e937f1291220e1
diff --git a/services/surfaceflinger/CompositionEngine/src/Output.cpp b/services/surfaceflinger/CompositionEngine/src/Output.cpp
index b411e0a..6878e99 100644
--- a/services/surfaceflinger/CompositionEngine/src/Output.cpp
+++ b/services/surfaceflinger/CompositionEngine/src/Output.cpp
@@ -300,10 +300,10 @@
         return;
     }
 
-    mRenderSurface->onPresentDisplayCompleted();
-
     auto frame = presentAndGetFrameFences();
 
+    mRenderSurface->onPresentDisplayCompleted();
+
     for (auto& layer : getOutputLayersOrderedByZ()) {
         // The layer buffer from the previous frame (if any) is released
         // by HWC only when the release fence from this frame (if any) is