Support PyString_AsString() in Python 3 < 3.3

In Python 3, version 3.3+, PyUnicode_AsUTF8() provides similar
functionality to Python 2's PyString_AsString().

In older versions of Python 3, there is no public function to provide
the same functionality.  However, the "internal" _PyUnicode_AsString()
does provide that functionality, so use it to replace
PyString_AsString().

With this patch, cv2 should compile for Python 3.[0-2].
Merge pull request #1767 from prattmic:python3_asstring
Merge remote-tracking branch 'origin/2.4' into merge-2.4

Conflicts:
	.gitignore
	modules/contrib/src/detection_based_tracker.cpp
	modules/core/include/opencv2/core/core.hpp
	modules/core/include/opencv2/core/internal.hpp
	modules/core/src/gpumat.cpp
	modules/core/src/opengl.cpp
	modules/gpu/src/cuda/safe_call.hpp
	modules/highgui/src/cap.cpp
	modules/imgproc/include/opencv2/imgproc/imgproc.hpp
	modules/ocl/doc/image_processing.rst
	modules/ocl/include/opencv2/ocl/ocl.hpp
	modules/ocl/perf/perf_haar.cpp
	modules/ocl/src/haar.cpp
	modules/ocl/src/imgproc.cpp
	modules/ocl/src/kmeans.cpp
	modules/ocl/src/svm.cpp
	modules/ocl/test/test_objdetect.cpp
	samples/ocl/adaptive_bilateral_filter.cpp
Removed another usage of __func__, following #1763.
Added a citation which used to be in the gpu module in 2.4.
Merge pull request #1781 from SpecLad:merge-2.4
Add missing limits include

Without limits included, several CUDA related files fail to compile with
GCC on Ubuntu:

modules/cudaimgproc/src/hough_lines.cpp:136:9: error: ‘numeric_limits’ is not a member of ‘std’
Merge pull request #1791 from prattmic:limit
do not use include_directories when calling find_package(OpenCV)
This is something that should be left to the user, that's the whole
point of OpenCV_INCLUDE_DIRS.
Update widget_pose.rst

changed Youtube link to our channel
Merge pull request #1801 from vrabaud:master
Merge pull request #1804 from alekcac:youtube_link_fix
Switched OpenCV to a 3-component version number.

Epoch is gone; now the version component names in C++ and CMake
are consistent (except REVISION corresponds to PATCH).
compilation & warnings
Fixed compilation errors: removed using namespace from hpp file. This led to pulling cv::ACCESS_MASK to global namespace where conflict with the same name in 'windows.h'
Fixed Viz compilation: removed CV_EXPORTS from cv::viz::Color. The macro forced instantiation of all Matx<double, 4, 1> constructors and triggered StaticAssert there.
fixed warnings
fixed all Viz warnings
moved some headers to precomp.hpp
fixed compilation for vs2008
added viz tutorial 3 test