This CL:
* Abstracts the functions in GlRectDrawer to an interface.
* Adds viewport location as argument to the draw() functions, because this information may be needed by some shaders. This also moves the responsibility of calling GLES20.glViewport() to the drawer.
* Moves uploadYuvData() into a separate helper class.
* Adds new SurfaceViewRenderer.init() function and new VideoRendererGui.create() function that takes a custom drawer as argument. Each YuvImageRenderer in VideoRendererGui now has their own drawer instead of a common one.
BUG=b/25694445
R=nisse@webrtc.org, perkj@webrtc.org
Review URL: https://codereview.webrtc.org/1520243003 .
Cr-Commit-Position: refs/heads/master@{#11031}