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
(cherry picked from commit edcb20627cbaa2b80a65f532950948087c18a4b8)
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
(cherry picked from commit 9b5ef3793b6012e979c10e4cc9a7e091092a4a57)

Conflicts:
	include/gui/Surface.h
Merge branch 'cm-11.0' of git://github.com/CyanogenMod/android_frameworks_native into cm-11.0

(cherry picked from commit 83af15b4282226b7991c04be4d328d71ce8cc436)

Conflicts:
	include/gui/Surface.h