hwc: Support 4kx2k FB for Primary and External.

Add support for 4kx2k FB for primary and external panels.
Change class design to create appropriate version of FBUpdate on boot up based
on the panel resolution.

Change-Id: I216d815d9b81c610aa39e351f7b55736dfa48b43
Revert "display: Don't use MDP flip if prerotation is disabled"

This reverts commit c3e5de44622422ddce691e069de260793a06cd19.
hwc: mdpcomp: Restructure for 4kx2k displays

Restructure MDPComp class for 4kx2k displays.
Cleanup MDPComp class to remove unused stuff and formatting.
Add a MDPCompLowRes class for current functionality.
Add a hollow MDPCompHighRes class for future.

Change-Id: I343540e712d31ca907257a73b49567578f49d5f7
hwc: Delay HDMI/WFD connection request by one frame

  This change introduces hdmi pending state, where we allow
  frames to fall back to FB, closing all MDP pipes.

  Pipes could be used by primary (mixer 0) in which case moving
  them to external (mixer 1) involves unsetting them and setting
  them in the same round which is not recommended by the driver.
  It will fall back to GPU till HDMI is configured on a connect
  event.

  CRs-Fixed: 430057

Change-Id: I4b6677883c499f6d15656c3578190be1115ee6b4
libexternal: Add support for changing resolution on HDMI

- set the property hdmi.resolution with the required mode
  (16,4,3,32,34,1)
- If that resolution is not supported by the TV, it will fall
  back to the best mode supported by the TV

Change-Id: I90ceda02319e79e388035ba7b5926bdcf6625595
CRs-fixed: 430055
hwc: commit changes for ext display on blank

- When the device is suspended, the overlay pipes will be unset,
  but they wont be unstaged as there is no DISPLAY_COMMIT ioctl
  called for ext display, as a result the fence wont be signalled
  by the MDP.
- This is needed as we dont turn off the External display(HDMI)

Change-Id: I9794ad2ae7c9d7b4ce3f9787f50ea9da87966e41
CRs-fixed: 425483
display: Return MDP pipe availability per display type

Pipes allocated for one display type cannot be used by other
display types without calling UNSET on them. So clients should
check for pipe availablity only for a specific display type.

Change-Id: Id2244e4976b4cc1f040ada7e56686742d5a65141

CRs-Fixed: 433870