Merge 2.4 into master

Original pull requests:

* #891 from NCBee:2.4
* #1019 from jet47:opengl-documentation
* #1070 from Daniil-Osokin:calibrationSampleAndroid
* #1098 from SeninAndrew:ximea_camera_bw_fix
* #1110 from SpecLad:config-cleanup
* #1121 from pengx17:2.4_gftt_perf_test
* #1123 from bitwangyaoyao:2.4_fix
* #1139 from StevenPuttemans:bugfix_3101
* #1168 from StevenPuttemans:feature_2753
* #1169 from asmorkalov:winrt_tbb_dbg_wrn_fix
* #1172 from StevenPuttemans:bugfix_3166_24
* #1177 from janstarzy:refactor
* #1184 from apacha:Descriptor_Docu_FREAK_added_2
* #1185 from znah:cumpute_method_for_2_4
* #1190 from melody-rain:2.4_add_farneback_to_superres
* #1191 from jet47:gpu-perf4au-fix
* #1193 from SpecLad:exports-for-contrarians
* #1196 from rdm12:bugfix_3121_cvtcolor
* #1197 from apavlenko:fix_unstable_perf_tests
* #1201 from alekcac:gittip
* #1202 from hansmi:docfix3149
* #1205 from asmorkalov:winrt_api_cert_fix
* #1206 from StevenPuttemans:feature_3169
* #1207 from kirill-kornyakov:fix-for-readme
* #1212 from jet47:gpu-calc-hist
* #1214 from StevenPuttemans:feature_3169_others
* #1219 from asmorkalov:winrt_neon
* #1220 from asmorkalov:msmf_sizet_fix
* #1222 from philippefoubert:branch_2.4_pvapi
* #1225 from apavlenko:fix_format_security
* #1226 from apavlenko:fix_java_test_ellipse2poly