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).
please, use smart pointer cv::Ptr&lt;&gt; instead of plain pointer.