sf: Use DirtyRect to optimize Full GPU composition

Use layer DirtyRect information in optimizing full GPU composition by
using startTile and endTile GL calls.

Change-Id: Iec0f9de2ce667438bbcc00d02e500055068df05a
sf: Validate display device id and disable dirtyrect composition

1. Add validation check for display device id to prevent out of bound
   array access.
2. Disable Dirty rect composition feature for GPU by default

Change-Id: I4976468bb156fff197c8c38fe680e10512b4feb5
frameworks/native:  Reset dirtyRect after every queuebuffer call.

Sometimes HWR does not generate dirtyRect even when it updates the
buffer. To avoid incorrect DR calculation in such cases reset
cached dirtyRect after every queueBuffer call.

Change-Id: Iad9a2b1ecb4cf2a3789f2734a2d0e928dc56c9f0
binder: update MemoryHeapIon

* Update from ODROID-XU 04212014 BSP

Change-Id: Ifc2664bcde37a71d855e05e7c9e50288a4508892
reduce PB size from 2MB to 512KB

this allows us to enable h/w acceleration on low-end
devices while keeping memory usage down.

Bug: 6557760
Change-Id: I8af2de3038dc2579360b8b73aa452cb7a0e506a9
egl: Add support for BGRA_8888 format

* Select with BOARD_USE_BGRA_8888 flag

Change-Id: I79a5a9edfef9c264eeeb9807797d03208f9bdbd7
Fix QCOM_BSP ifdef

Change-Id: Ibeee2edadcf03b92f31cf3af3c0be0e2e0af023d
Merge remote-tracking branch 'pac/pac-4.4' into pac-4.4

Conflicts:
	services/surfaceflinger/SurfaceFlinger.cpp
surfaceflinger: allow surface format selection for NO_RGBX_8888 devices

* Before: RGB_565 was chosen as the default surface format
  (which may not be ideal for 32bpp framebuffer devices).
* After: RGB_565 or RGBA_8888 can be chosen, depending on the value
  of the property persist.sys.prefer_16bpp.

Change-Id: I72cd41a50dfe12c522a72108f8ef4d0db445e169