Implemented ReplaceDuplicatePointsNew(), which correctly uses a kd tree to detect duplicates.

The new routine is called at the end of the old one if a problem is detected; this should preserve full backward compatibility.

This should fix issue #137



git-svn-id: https://geuz.org/svn/gmsh/trunk@18280 59c8cabf-10d6-4a28-b43f-3936b85956c4