Currently we use a world transform on the LayerManager. This gets passed to the
screen render target which adjusts the gl transform to accomplish the rotation.
This causes a lot of the system to have to know about the transform.
Instead we can just bake the transform into the root layer's shadow transform.
Everything now mostly just works.
In order to enable/disable the Vsync from mHwc, we should make sure
the order of each command is correct. In this patch, I added an
interface for registering these mHwc callback functions and some
accessor/helper functions for manipulating Hwc Vsync.
This is a rollup of the following patches
part 0: Add a dynamic cast to ColorLayer*
part 1: Add a Composer2D interface to enable implementations to more efficiently compose layer trees
part 2: Let widgets expose Composer2Ds, if they have them
part 3: Expose a layers ogl "friend" API that Composer2D will consume
part 4: Hook Composer2D into the LayerManagerOGL rendering pipeline
part 5: Implement all the goop to let widget/gonk use a Composer2D (HwcComposer2D)