First-pass for the new RenderEngine interface.

Includes separate test suite just for renderengine, so that we can test
against the interface directly.

I'll try to sync the interface definition in go/re-interface-cleanup
with whatever we land on here.

TODOs (future cls):
* Adding/deleting textures (move SF texture pool behind renderengine?)
* BufferLayer::bindTextureImage should probably move behind RE since
there's some duplicated code.

Bug: 117103231
Change-Id: Ib155b47c7c2ebbb9a23075a8534bd2842e846b9e
Test: test-renderengine
diff --git a/services/surfaceflinger/RenderEngine/gl/GLES20RenderEngine.h b/services/surfaceflinger/RenderEngine/gl/GLES20RenderEngine.h
index 4f03a90..b08e096 100644
--- a/services/surfaceflinger/RenderEngine/gl/GLES20RenderEngine.h
+++ b/services/surfaceflinger/RenderEngine/gl/GLES20RenderEngine.h
@@ -73,6 +73,10 @@
     void unbindFrameBuffer(Framebuffer* framebuffer) override;
     void checkErrors() const override;
 
+    status_t drawLayers(const DisplaySettings& settings, const std::vector<LayerSettings>& layers,
+                        ANativeWindowBuffer* const buffer,
+                        base::unique_fd* displayFence) const override;
+
     // internal to RenderEngine
     EGLDisplay getEGLDisplay() const { return mEGLDisplay; }
     EGLConfig getEGLConfig() const { return mEGLConfig; }