Allow unregister Callback and Controller

Thx to omnirom
SystemUI: Recycle the old wallpaper background bitmap after we choose a new wallpaper.

BZ: 101064

RootCause: ImageWallpaper didn't call old background bitmap's recycle before
           set it to null.

Category: aosp improvement
Domain: AOSP-Framework-Media
Origin: internal
Upstream-Candidate: yes

Orig-Change-Id: I27f6971a3edd26472b69e59b542b27fd7c8e7b90
Change-Id: Ice59aea79f8137d5995d7a5ce9a6ed7903750d30
Signed-off-by: jshe32X<jianchunx.shen@intel.com>
Optimize drawBitmapMesh using TRIANGLE_STRIP

Draw BitmapMesh using STRIP instead of TRIANGLES.
Depending on where the bottleneck is located in the pipeline,
there is a potential for saving two-thirds of the time spent rendering.
The speedup is due to avoiding redundant operations,
i.e., mapping each vertex four times to texture and color attribute,
sending each vertex twice to the GPU, vertex processing of GPU ...

In this patch:
1. Refactoring mesh using Strip.
2. Batch triangles by adding extra vertexs at the start and end of rows.
3. Optimize computing positions of texture and color attribute.

Benchmark: Drawing Bitmap(1152x768 px) with 200x200 meshes
Performance: ~46% improvements (from 26.4 fps to 38.7 fps)
Memory: Reduce 80800 vertices with xy, uv, rgba data.

Change-Id: I08c5c20d981d88528ce7b02012feefae468d6ec4
Signed-off-by: kui.zheng <kui.zheng@arm.com>