Updates to allow the viewfinder to slide across the UI with device panning. Also, rendering updates for color conversion using GPU.

1) Refactored the SurfaceTextureRenderer and WarpRenderer classes to inherit from a new base class Renderer.
2) Fixed a minor bug in the Blend class and added a helper function to create the mosaic in middle frame coordinate system [no changes in run-time behavior].
3) Added a flip-flop gPreviewFBO to allow panning the viewfinder across the UI when the user pans the device.
4) Fixed the size of the viewfinder and preview mosaic to match the UI layout height.
5) The viewfinder in the preview stage is now aligned with the viewfinder in the capture stage.
6) Added new class YVURenderer that converts from RGB to YVU data using GLSL shaders.
7) Modified the rendering pipeline to use GPU for RGB to YVU conversion. The processing thread now only performs conversion from YVUA interlaced to YVU planar format.
8) Updates following Wei-Ta's code-review comments.

Change-Id: I6c18df3b57d1c2d78d55da8a8f3b9cd970c8d903
14 files changed