Attempt at fixing bug 3186
removed needless arithm_2_mat.cl file
marked some methods of ocl::Context as const
refactored and extended arithm operations add/sub/mul/div/absdiff
removed ocl::magnitudeSqr
removed comments from filtering.cpp and imgproc.cpp in ocl module
refactored and extended ocl::LUT
refactored and extended ocl::addWeighted
refactored and extended binary bitwise operations
refactored and extended ocl::compare
refactored and extended ocl::exp and ocl::log
refactoed and extended ocl::transpose
refactored arithm.cpp. Extended param list for all the tests
removed arithm_absdiff.cl
Revert "cmake: fixed incorrect usage of add_definitions() on Linux"

This reverts commit 286244efedd215600b6be72d4c25e48af0ed1c2d.
Added nonfree headers that are required for using SURF features
Merge pull request #1498 from alalek:revert_1487
cmake: fixed incorrect usage of add_definitions() on Linux
cmake: PCH: use DEFINE_SYMBOL target property
Resolved the bug that the work group size is not valid.