[algorithms][is_valid] templatize is_valid dispatch class with
one more boolean template parameter to control the behavior with
respect to allowing duplicate points; modify algorithm for rings
polygons and multi-polygons to take the additional template parameter
that controls behavior with respect to duplicate points;
[test][is_valid] update is_valid unit test to take into account
that duplicate points for areal geometries may be acceptable or not