Updating STAR detector and FREAK descriptor to work with large and/or 16-bit images
Don't automatically convert to grayscale (keep previous behavior.)
Merge branch 'master' of https://github.com/Itseez/opencv

Conflicts:
	modules/imgproc/src/sumpixels.cpp
Pick centers in KMeans++ with a probability proportional to their distance^2, instead of simple distance, to previous centers
Apply to KMeansIndex KMeanspp the same modification as in HierarchicalClusteringIndex
As some processed distances are already ^2, use template to select whether or not we have to ^2 in KMeanspp
Move templates in dist.h in order to share them between KMeansIndex and HierarchicalClusteringIndex classes.
When a cluster is empty for KMeans, it's better to give it the point from another cluster j that is the furthest one from center j.
Add a new method for initializing KMeans centers that leads to better clusters and thus better retrieval when final centers have to be existing keypoints instead of clusters barycenters.
converted necessary files for python3 compatibility using 2to3
fixed relative imports in Jinja for python3
explicit string encoding when writing to file in python3
added epsilon value to weights in the MergeMertens in order to avoid zero weights for pixels from uniformly filled areas of image
added test for correct handling of uniforma areas in the MergeMertens
New KNN code -should compile now
function code
some fixes
Do not build apple objective-c codes if using gcc
Merged upstream master
modified OpenCL SURF API and the tests in 2.4.x to prove that it gives different from CPU results