OCL SURF 2.4

check_regression=*surf*
This PR is created to prove that OCL SURF in 2.4 gives results quite different from the CPU version.
How is it proved?
1. the class `cv::ocl::SURF_OCL` is slightly refactored (without touching implementation) so that it's derived from `Feature2D` and implements all its virtual methods. After this refactoring `cv::ocl::SURF_OCL` can be used as dropout replacement for SURF.
2. In the tests for `cv::SURF` we conditionally (`#ifdef HAVE_OPENCV_OCL`) replace `cv::SURF` with `cv::ocl::SURF_OCL`.
3. The default `cv::ocl::SURF_OCL` constructor parameters have been changed to match `cv::SURF`.

it looks like several accuracy tests and several perf tests fail.