added computeNMChannels helper function to compute the diferent channels to be processed independently in the N&M algorithm.
Using cv::magnitude instead of custom loop and Mat<float> instead of Mat<double> to compute gradient magnitude channel.
Primal-dual algorithm

This is an implementation of primal-dual algorithm, based on the C++
source code by Vadim Pisarevsky. It was extended to handle the denoising
based on multiple observations. It also contains documentation and
tests.
Minor fixes

As the opencv's build-bot did not want to compile this revision, I had
to do some changes. In particular,
1) Removed unsigned int vs int comparisons, that were treated as errors
2) Removed unused variables and functions
3) Removed functions without previous declaration
4) Fixed whitespaces
Minor fixes

Fixed integer vs unsigned integer comparison in .cpp test source and
trailing whitespaces in source code
Eliminate use of 32-bit floating pt type

Replace all "float" by "double" (64-bit) to avoid "lose precision"
warnings.
Fix retina ocl on NV.
Previously we incorrectly assumed data was aligned in 16 bytes, which should be 32.
Fix whitespaces.
Merge remote-tracking branch 'origin/2.4' into merge-2.4

Conflicts:
	.gitignore
	doc/tutorials/objdetect/cascade_classifier/cascade_classifier.rst
	modules/gpu/src/match_template.cpp
	modules/imgproc/include/opencv2/imgproc/imgproc.hpp
	modules/ocl/include/opencv2/ocl/ocl.hpp
	modules/ocl/perf/perf_precomp.hpp
Merge pull request #1427 from SpecLad:merge-2.4
Merge pull request #1425 from pengx17:master_retina_ocl_fix
Fixed finding Git when cross-compiling.
Merge pull request #1436 from SpecLad:host-git
The prism distortion coefficients are added for the stereo calibration.
Added plantuml extension

Aligned strings in CMakeList

Modified the check on plantuml extension

Some fixes

Moved find_host_program for plantuml script
Added an additional version component - the development status.

This will allow us to distinguish between regular releases, prereleases
and development versions.
Added version status support into the build system.
Updated the build config files to deal with the version status.

I didn't make the status part of the version variables here, because
letters don't play too well with version comparison algorithms
(especially with CMake's, which only supports numbers).
Updated the Java bindings and docs to support the version status.
Bumped version to 3.0.