Wip generic accessors to user-defined points and point coordinates

Currently, the code requires copying the input points to an internal vector. With this WIP, the code accesses the input points through accessors, allowing user-defined points to be used _without_ copying them.

It may, of course, in some cases be faster to copy the points to a vector, but this is now a decision the user can take.