allow construction around vec2 subclasses
fix potential NaN situation in closestPointTo
ensure closestPointTo is not mutating inputs
add clone / containsPoint