smooth zoom

I tried to implement on desktop something similar to smooth pinch zooming on mobiles:
* When the modifier key (`Control`) is not pressed everything works as before
* When the modifier key is held down the zoom factor can be set to a fractional value. Releasing the modifier key sets the zoom factor to the nearest integer value.