Build both Python 2 and Python 3 bindings

If both Python 2 and Python 3 are found, then build bindings for both of
them during the build process.  Currently, one version of Python is
detected automatically, and building for the other requires changes the
CMake config.

The largest chunk of this change generalizes OpenCVDetectPython.cmake to
find both a Python 2 and Python 3 version of Python.  Secondly, the
opencv_python module is split into two modules, opencv_python2 and
opencv_python3.  Both are built from the same source. but for different
versions of Python.
Used float instead of int for CV_8U in sumTemplate
new block size for dft
added dft for all platforms
use std::min,max
Merge branch 'master' into python2and3
Reference PYTHON_NUMPY_INCLUDE_DIRS not PYTHON_NUMPY_INCLUDE_PATH

PYTHON_NUMPY_INCLUDE_PATH was a typo, it should have been
PYTHON_NUMPY_INCLUDE_DIRS.
Double precision for solvePnPRansac()
Vectorize split & merge for NEON
fixed ocl tests for BlendLinear, BoxFilter, Integral
fixed test for CvtColor RGB -> Luv
fixed ocl_integral
Fix epsilon for OpenCL function ConverTo, for convertation from float to integer types
Fix error in OpenCl version of meanstddev for continues src and not continues mask
Merge pull request #3035 from ElenaGvozdeva:ocl_test_fix
Merge pull request #3043 from vbystricky:ocl_ConvertToAccurTestFix
Merge pull request #3045 from vbystricky:ocl_MeanStdDevFix
world fix
make distrib with world (shared libs)
Merge branch 'master' into python2and3