gralloc: Add workaround for Jellybean camera drivers

* Arcee is smarter than I am, and discovered that we can simply swap
  two fields to ensure compatibility with Jellybean camera drivers
  having the metadata fields in the private_handle_t struct.
* Enable this by defining QCOM_BSP_CAMERA_ABI_HACK.

Change-Id: I2cd267dd5550404cf2e61d76fb805e780cd99d3c
display: Add flag to allow legacy allocations from MM heap

 * New devices with IOMMU use the MM heap exclusively for protected
   buffers. We need to support the old behavior for devices with legacy
   userspace.
 * Enable the old behavior with TARGET_DISPLAY_INSECURE_MM_HEAP.

Change-Id: I7882354fa8f159c707be11d7021c18561abfb522
display: Properly handle NO_IOMMU case

 * Enable it by default for msm8660 too.

Change-Id: Icbd5de1e7f020285ff6101c34286ca8863b11040

Conflicts:
	libgralloc/alloc_controller.cpp
gralloc: Fix some differences with compatibility code

Change-Id: I0f41ff987b6b3f554e11ea2f259d778c8cee7fa2

Conflicts:
	libgralloc/alloc_controller.cpp
display: Add support for MDP 4.1

 * MDP 4.1 does not support the borderfill pipe and the baselayer logic
   should not be used.
 * Only use 3 pipes for MDP 4.1.

Change-Id: Ide542079902f35818300619f8eefd3d188342b5d

Conflicts:
	libhwcomposer/hwc.cpp
display: Fix support for MDP 4.1

 * MDP 4.1 still does not support the borderfill pipe, baselayer logic
   should not be used.

Change-Id: I587bdff4a03ced141e43819eea70cec1aedaeb7b
overlay: Allocate from MM heap as a fallback

 * Not all devices support IOMMU yet, so use the MM heap as a fallback.
 * Enabled when NO_IOMMU is set

Change-Id: I9d9f3dffb92f5b4bf45422df0f66a40611943202
libgralloc: Fix NO_IOMMU ifdef

This fixes 1080p video playback and record.