Merge 2.4 into master

Original pull requests:

* #2178 from Nerei:viz_backport
* #2259 from ilya-lavrenov:ocl_surf
* #2261 from jet47:stitching-cuda-android
* #2274 from jet47:android-mk-fix
* #2276 from asmorkalov:android_install_cuda
* #2277 from asmorkalov:android_test_path_fix
* #2285 from KonstantinMatskevich:ocl_test_cascade2.4
* #2288 from asmorkalov:android_project_properties_generation_fix
* #2292 from asmorkalov:ocv_deb_tests_script_path_fix
* #2294 from jet47:fix-gpu-issues
* #2297 from asmorkalov:ocv_testdata_install_perms_fix
* #2300 from asmorkalov:android_no_cuda_not_armeabiv7a
* #2301 from jet47:fix-nonfree-build
* #2303 from jet47:gpu-canny-fix

Most of the dynamicuda stuff is skipped, as usual.