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).
Using cv::makePtr throws an error for me.  I think its because makePtr expects the constructor arguments to be consts.  Thoughts?