ZoomChanged callback plus clarifications and refactoring

Added a callback for when user zooms in or out (EDIT: and when chart is first painted) that gives a rectangle describing the boundaries/extents of the visible area. (EDIT: Also wrapped this functionality in its own extension method.) This is useful, for example, to re-calculate statistics on just the visible data. This should close issue #4.

I also discovered another (simpler, in my opinion) method for setting the selection for a cursor:

```C#
ptrChartArea.CursorX.SetSelectionPixelPosition(e.Location, e.Location, true);

// Previous way
ptrChartArea.CursorX.SelectionStart = ptrChartArea.AxisX.PixelPositionToValue(e.Location.X);
ptrChartArea.CursorX.SelectionEnd = ptrChartArea.CursorX.SelectionStart;
```

Lastly, I change the text on the status bar labels to try and make their purpose clearer to a new user. Let me know what you think about the changes.

Thanks!
Pat