Merge remote-tracking branch 'origin/2.4' into merge-2.4

Conflicts:
	cmake/OpenCVDetectOpenCL.cmake
	cmake/OpenCVModule.cmake
	modules/imgproc/src/floodfill.cpp
	modules/nonfree/src/surf.ocl.cpp
	modules/ocl/include/opencv2/ocl/ocl.hpp
	modules/ocl/include/opencv2/ocl/private/util.hpp
	modules/ocl/perf/main.cpp
	modules/ocl/src/arithm.cpp
	modules/ocl/src/blend.cpp
	modules/ocl/src/build_warps.cpp
	modules/ocl/src/canny.cpp
	modules/ocl/src/cl_programcache.hpp
	modules/ocl/src/columnsum.cpp
	modules/ocl/src/haar.cpp
	modules/ocl/src/hog.cpp
	modules/ocl/src/imgproc.cpp
	modules/ocl/src/initialization.cpp
	modules/ocl/src/match_template.cpp
	modules/ocl/src/matrix_operations.cpp
	modules/ocl/src/mcwutil.cpp
	modules/ocl/src/moments.cpp
	modules/ocl/src/mssegmentation.cpp
	modules/ocl/src/precomp.hpp
	modules/ocl/src/pyrdown.cpp
	modules/ocl/src/pyrlk.cpp
	modules/ocl/src/pyrup.cpp
	modules/ocl/src/split_merge.cpp
	modules/ocl/src/stereo_csbp.cpp
	modules/ocl/src/stereobm.cpp
	modules/ocl/test/main.cpp
	samples/ocl/bgfg_segm.cpp
	samples/ocl/facedetect.cpp
	samples/ocl/pyrlk_optical_flow.cpp
	samples/ocl/squares.cpp
	samples/ocl/stereo_match.cpp
	samples/ocl/surf_matcher.cpp
	samples/ocl/tvl1_optical_flow.cpp