Fix auto-ranging for axis bounds and refactor Zoom class

A bug was fixed by which the chart axes would not recompute their bounds
properly when new data items were added or existing data items were
adjusted. As part of this bugfix, the bounds management was refactored
such that the axes compute their ranges automatically except when in
zoomed mode.

In addition to that, a minimum selection size was introduced to help
prevent accidental zooming.