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).
this should be removed once you switch to smart pointers