Zoom fix for Bug #9168

Implemented zoom fix where zooming will keep the image under the mouse pointer in place during the zoom operation. This is the "jumpy" zoom implementation where images are not allowed to go outside the grid, which results in the image under the mouse pointer to jump around a bit during the zoom, in order to keep it under the mouse pointer.