Move clustering to ml

@vpisarev, I think if we'll not make this change to OpenCV 3, it'll probably remain the same on long time..

All code related to clustering functionality was moved from core to ml: implementation, tests, perf tests, documents, samples also were fixed.

Several comments:
- I moved function "cvKMeans2" from core/matrix.cpp to ml/kmeans.cpp, not sure is it ok, may be we can even remove it as it isn't used anywhere and doesn't have definition in headers.
- I moved "kmeans" to proper cv::ml:: namespace, but "partition" while was moved to cv:: to have less changes in PR, but probably we still need to move it also in cv::ml::
- Minor changes are also needed in opencv_contrib, so PR for it need to be created, just need to clarify time for it.