Use `Dimensions` class to calculate scale factor

Move the `scale_to_fit()` function into this class. This reduces the
number of arguments needed, since the class stores the width and height.
Image can be panned by dragging the mouse

Clicking and dragging the mouse now pans/scrolls the image.
Small cleanup of `ImageView`

* Always use a trailing zero for floats in `ZOOM_STEPS`.
* Prefer `/ 2.0` over `* 0.5`.
* Move the emission of `signal_zoom_changed` into `update()`.
* Shorten adjustment variable names to `hadjust` and `vadjust` because
  they're used a lot and were a little too long.