Labels can be placed on an arithmetic sequence as well as at fixed intervals on screen

Added properties `gridLineXGap` and `gridLineYGap` which place grid lines at their integer multiples in the data, as an alternative to a fixed number of grid lines.

Also switched AbstractSeries from using a `List<AbstractPoint>` to a `SortedSet<AbstractPoint>`, as this avoids re-sorting on every draw, and some general code tidy up and extra commenting.