CPU (non-OpenCL) CLAHE Support for CV_16UC1 Images

The CPU implementation (non-OpenCL) implementation algorithm now supports image types of any OpenCV supported integer types.  Addresses: CLAHE Lacks Support for Other Image Types (Feature #3749).
1. this will degrade the speed of 8u version quite a bit.
2. the code is not correct. Assume that the image covers not the entire value range, say, from 0 to 128. Then binSize will be 0 and the results will be completely wrong.
3. even for 16-bit images it would probably be better to have fixed-size histogram (say, including 4096 bins or something like that).