Implementation detector and selector for IPP and OpenCL;

IPP can be switched on and off on runtime;

Optional implementation collector was added (switched off by default in CMake). Gathers data of implementation used in functions and report this info through performance TS;

TS modifications for implementations control;
Hi,
I believe this code should be replaced, because it breaks current tests design and cause very strange updates in tests (I mean perf_main.cpp changes).
Implementation here is a tests implementation (with different test code paths / called functions). It is not equal to used optimizations for OpenCV functions. It may be inconvenient, but it is OpenCV legacy.

Optimization should be controlled by the other way.
OpenCL optimization can be disabled by environment variables (`OPENCV_OPENCL_*`).
Similar environment parameters can be added for IPP optimization.
Additionally you can add command-line parameters for perf tests, like `--disable_ipp` / `--disable_opencl` and use them via `cv::ipp::setUseIPP()` / `cv::ocl::setUseOpenCL`.