fix mismatch on NV OCL and some AMD GPUs
add stereoBM function
remove the OpenCL define
Add ocl::SURF accurate test.

The test cases are ported from gpu module (masked version is still
missing).
Key point direction definition is synchronized with cv::SURF.
nonfree module dependency is added into ocl module's cmake file.
fix warnings on Linux
Remove unnecessary HAVE_OPENCL macro block.
Fix a bug in ocl::Erode/Dilate, simplify the host logic
Merge remote-tracking branch 'upstream/2.4' into 2.4
Merge pull request #628 from bitwangyaoyao:2.4_fixMoments
Merge pull request #638 from bitwangyaoyao:2.4_fixErode
implemented Malvar, He, and Cutler Bayer Demosaicing on gpu
Merge pull request #631 from bitwangyaoyao:2.4_stereo
Merge pull request #632 from pengx17:2.4
Merge pull request #644 from jet47:gpu-debayer-mht