Add recursive OrderX function to Graph.cs, rename PointSequenceInvalidExcpetion to PointOutofBoundsException, accept points of any X value and then order them from smallest to largest, refactor Plot(List<Vector2> points) function to order X values using OrderX