msm_fb: correct quickdraw buffer alignment

To prevent display corruption when drawing non-fullscreen buffers
to the display panel the buffers need to be aligned along the
x-axis per the panel "column alignment" specification. For example,
if a panel has a 4-pixel alignment restriction buffers must start
at a x-coordinate that is divisible by 4 with a width that is also
divisible by 4. Buffers are auto-corrected by shifting to the nearest
x-coordinate that is divisible by the panel's column alignment
requirement. Any buffer that has a width that is not divisible by the
panel's column alignment requirement is considered invalid.

Change-Id: I26d0fdd94b0adeac17676ef40696eecbf521e310
Signed-off-by: Joe Swantek <jswantek@motorola.com>
Reviewed-on: http://gerrit.pcs.mot.com/622377
SLTApproved: Slta Waiver <sltawvr@motorola.com>
Tested-by: Jira Key <jirakey@motorola.com>
Reviewed-by: Jared Suttles <jsuttles@motorola.com>
Reviewed-by: Patrick Auchter <auchter@motorola.com>
Reviewed-by: Stephen Rossbach <rossbach@motorola.com>
Submit-Approved: Jira Key <jirakey@motorola.com>
(cherry picked from commit 81278547915102b42c7ba04734182d2ecb68d75d)
Reviewed-on: http://gerrit.pcs.mot.com/625592
Reviewed-by: Upgrade Build <dbbuild@motorola.com>
SLTApproved: Upgrade Build <dbbuild@motorola.com>
Submit-Approved: Upgrade Build <dbbuild@motorola.com>
Tested-by: Upgrade Build <dbbuild@motorola.com>