[CE] Separate framebuffer space from display space

Some devices have limited GPU capabilities and they
cannot perform client composition at the resolution
of the active display mode. For this reason the
framebuffer size can be limited with the sysrops
ro.surface_flinger.max_graphics_height|width.

As the framebuffer size can differ from the display
size, in this CL we separate the concepts for
framebuffer space and display space so we properly
render.

Bug: 161793589
Bug: 168788659
Test: atest libsurfaceflinger_unittest libcompositionengine_test
Test: 1. adb shell service call SurfaceFlinger 1008 i32 1
      2. make sure content is rendered properly
      3. adb shell service call SurfaceFlinger 1008 i32 0
      4. make sure content is rendered properly
Test: play YouTube video

Change-Id: I17d54ef8c85773c072f0c38f576f3f3be504d6ec
10 files changed