msm_fb: vsync events for legacy MDP 3.00 targets

Pieced together from current code in CAF. This is very specific to
MDP 3.00 targets that use the LCDC display controller, and it might
break horribly and badly on anything else.

Change-Id: I2b7086a17fd22a04d61d7962f4ea98ab1af00442
msm_fb: fixup MDP 3.00 vsync events

This is the sum of several fixes and improvements to the MDP 3.00
vsync event code.

Make sure to never switch off MDP command clock twice; add timeout
to the vsync wait completion and interpret the return value of the
completion function correctly.

Change-Id: Ic0a699c98a90e896a9ba185793cc7d9187bb6ec1
msm: display: fb blend setting via MSMFB_METADATA_SET ioctl

MSMFB_METADATA_SET ioctl is added for the fb user to pass
in additional infomation rather than using reserved
fields.
User can set pre-multiplied alpha for the frame buffer via this
ioctl, overlay blend setting will take this into account.

Change-Id: Ic2f6236d84691fb03174ec479874c6928489ea30