Add adaptive bilateral filter (cpp and ocl version)

This ﬁlter is very similar to a usual bilateral ﬁlter, in that dissimilarity from and distance to the "center" pixel is
"punished". Instead of employing transcendental functions (e.g. exponential), we employ a simpler to implement
 rational expression (known with various names, such as Cauchy distribution, or Lorenz(ian) function). The main
 difference with the standard bilateral ﬁlter is that the strength of the term that punishes pixel value dissimilarity is not externally provided global parameter, but rather it is locally derived from the data, as the variance of pixel values in the neighbourhood.