Revert "remove support for glReadPixels screenshot path"

This reverts commit: I2e8fc07f135030bd61d2e241a8e426f1a4316425
Support forcing all screenshots into a CPU consumer

Refer to:
https://github.com/CyanogenMod/android_frameworks_native/commit/5f695d3dcf8bcacc1fb1300280dbb38a46069c21
surfaceflinger: Set max acquired buffer count

If triple framebuffers are enabled, the number of acquired buffers isn't increased by default. Set the count to one less than the max buffers to make sure all three buffers come into play.

https://github.com/metalspring/android_frameworks_native/commit/48239b75899e55e14b9050a19418aaaa82f659ad
libs/ui: Fix crash issue because of null pointer access

 - handle NULL check is required while flatten GraphicsBuffer

https://github.com/metalspring/android_frameworks_native/commit/33737086ca4af349deaf692c539b7c3eae772637
SurfaceFlinger: Add NULL check for buffer handling

Add buffer handling NULL check in dequeueBuffer and verify whether the output data from binder is not NULL in queueBuffer and connect api's to avoid SF crash

https://github.com/metalspring/android_frameworks_native/commit/2b0c031e269177285bc7d025a4114cebf336aab1
SurfaceFlinger: Enable Vsync trace for SF Composition

Enable traces to show s/w vsync which is used for composition by surfaceflinger, this helps in identifying the start of composition cycle in systrace

https://github.com/metalspring/android_frameworks_native/commit/609005f9c4eea5cd76b3453cd069a897baaf76f0
Graphics:Add error check when create GraphicBuffer

https://github.com/metalspring/android_frameworks_native/commit/7a868d9c0cb628401b06adb100b365019428ad42