Update .replacePoint(), support fake points / placeholders

[#64376104]

It lets you add points in any order you want, e.g.:

graph.replacePoint(point3, 3);
graph.replacePoint(point1, 1);
graph.replacePoint(point2, 2);
graph.replacePoint(point0, 0);

Previously client code was forced to use .addPoints() and provide
all points in order.