3D viewer: zoom camera with mouse wheel and move it with additional Ctrl

Zoom is needed to easily circle around the current target while getting closer.
Moving the camera could also be practical sometimes, but is used less often.
Therefore, the camera is only moved when the Ctrl key is pressed. It is not
allowed to have a zoom smaller 1, because there are corner cases with numerical
instability it seems. For greater distance, the camera has to be moved.
3D viewer: small refactoring of minimal zoom limit