LCD_KCAL: Introduce configurable kcal_min

Lower values such as 0-10 ultimately create a dark, washed out display, if a user accidently sets their kcal values to "0 0 0" they will loose visual control of the device, potentially requiring a hard reboot.
Introduce minimum kcal values to prevent this behavior.

Willing users can disable this protection by setting the kcal_min value to '0', however the default value of 35 is recommended.

sysfs:
echo "1/255" > /sys/devices/platform/kcal_ctrl.0/kcal_min

kcal_min will detect and block values attempting to set lower than itself, resetting the specific values to that of kcal_min. There is also behavior to adjust the kcal if kcal_min is set to a level higher than that of any kcal value(s).

Conflicts:
	arch/arm/mach-msm/board-htc-8974.c

Conflicts:
	arch/arm/mach-msm/board-8226.c
	arch/arm/mach-msm/board_kcal.c
LCD_KCAL: Prevent out-of-range input values
s2d: rewrite kcal setting, allow s2d with s2w

Conflicts:
	arch/arm/mach-msm/board-8226.c

Conflicts:
	arch/arm/mach-msm/board-8226.c
	drivers/video/msm/mdss/mdss_mdp_pp.c
LCD_KCAL: Refactor code/implementation

Conflicts:
	arch/arm/mach-msm/Makefile
	arch/arm/mach-msm/kcal_ctrl.c