add distance_to() method and make tests

ConnectedMultipoint.distance_to(pt) returns the shortest distance between pt and
a any position on the connectedmultipoint.

added tests for
- ConnectedMultipoint.distance_to()
- ConnectedMultipoint.nearest_on_boundary()