Fix to Zoom bugs

Fixed Zooming too far out causing crashes by setting a bottom limit.
Fixed Zooming too far in causing lag by limiting the maximum zoom level.
Improved the zooming algorithm so that zooming works on incremental
steps between the minimum and maximum limits.

Todos:
Improve zoom algorithm further, so each step of zooming zooms in by the
same proportion rather than by an incremental addition of equally spaced
numbers.  Perhaps something like each step is a percentage increase
between the minimum and maximum each step getting progressively larger
numerically, but appearing to zoom by the level each time.

Additional Zooming smoothness. Program an animated transition between
each zoom level. So zooming to a new level appears to be a smooth
transition between one step to the next. Need to investigate.