libgui: Add native window attributes to query usage

This is required to enable GL libraries to query usage
native window attributes to enable/disable tile rendering.

Change-Id: If752fa26ac3d8ffd7776cc5a16fe162af0742df5
SF: Block gpu rendering for virtual display widevine level3

In MPD3 we are using the widevine level3 for secure content
display. And this should applicable only for primary display
not for screen shot or screen recording.

CRs-Fixed: 595469
Change-Id: I99be2d81287ab746d5c4a2375c3106c59e61a8fc
binder: update MemoryHeapIon

* Update from ODROID-XU 09232013 BSP release

Change-Id: I5245c8a9f783e8902bf91a0ee23e60ebeb335b27
Add sessionId metadata with every buffer queued through Surface

Add sessionId metadata to identify the buffers to be belonging to a
single video session

Change-Id: Ic26cf1d7fdead1c38c0f43e562b7878663d7291c
Display: Add swaprect feature for MDP composition.

Add swaprect feature for MDP composition.
SwapRect is a SurfaceFlinger feature for selective composition
of only thedirty region.
* Existing SF does copying of the complete layer for every
 layer (in effect the full screen) whether or not the layer's
 information has changed (dirty region).
This is very inefficient use of compositing hardware (MDP/GPU).
* At the app level, we're doing dirty region rendering (App only
renders what is changed) using the feature "Dirty Region Rendering".
So, at the app level we know what has changed (dirty region) per
 layer. But SurfaceFlinger doesn't know this info and hence it's
 not able to use dirty region for selective composition and ends up
 compositing full screen.
* For SurfaceFlinger to composite only the dirty region
   1. It needs to know the dirty region (This needs to be passed
      down from the app)
   2. It needs to pass this info to the actual compositing hardware
     (MDP / GPU) so that the hw can do selective composition
* SWAPRECT feature needs to implement 1 & 2.
* 1 is common for all composition types whereas 2 is different
 for each composition type
This change implements 2 for MDP composition
* We've also added strong checks in the feature to make sure the
 feature kicks in only for the UX scenario's where performance
 improvement is expected and no functionality issue would arise.
To enable MDP Swaprect, setprop debug.sf.swaprect 1 and restart
framework.

Change-Id: Iac67acffcd4de1413cdbe0f15a278cc2cd54206f
Merge branch 'cm-11.0' of https://github.com/CyanogenMod/android_frameworks_native into up