Merge 2.4 into master

Most of the pull requests related to dynamic CUDA are merged with `-s ours` by agreement with @asmorkalov.

Original pull requests:

* #2017 from pemmanuelviel:flannMemoryLeak
* #2022 from asmorkalov:ocv_dynamic_cuda
* #2036 from GregoryMorse:patch-1
* #2037 from GregoryMorse:patch-2
* #2039 from asmorkalov:ocv_version_inc3
* #2040 from asmorkalov:android_mk_fix
* #2049 from asmorkalov:android_cuda_warning_fix
* #2050 from asmorkalov:android_mk_fix2
* #2051 from AlexWillisson:patch-2
* #2052 from SpecLad:seporate
* #2056 from asmorkalov:java_core_cuda_wrappers
* #2057 from asmorkalov:android_cuda_sample
* #2060 from asmorkalov:ocv_ts_cuda
* #2061 from apavlenko:2.4_fix_build_vs12
* #2064 from dpen2000:patch-2
* #2068 from akarsakov:disable_ipp
* #2069 from asmorkalov:android_ocl_1_1_fix
* #2072 from pengx17:patch-3
* #2074 from asmorkalov:android_nonfree_cuda
* #2078 from ilya-lavrenov:warn
* #2080 from asmorkalov:ocv_dynamic_cuda_deviceinfo_fix
* #2082 from asmorkalov:dynamicuda_internal_fix
* #2083 from jet47:gpu_android_tests