If a guide line is horiz or vert then allow the user to grab and drag
it without converting it to a curve.

This commit also introduces SPLFirstVisit() for visiting the points of
an spl without needing the iteration mechanics each time.