Desktop Application Arbitrary Zoom

Added Cascading Zoom. The way it's written makes stepping back and forth
through zooms immediately possible, but not yet implemented. Also, axes
don't follow the zoom yet.