Make the logic for converting NDOF Z-motion to a scale value more straightforward. Flipping the Z axis was scaling by negative-time, now the entire pan vector is scaled by time and the zoom value is calculated as `scale = 1 - (z * time)` instead of `1 + (z * -time)`. Although they're equivalent, confusion here caused T100953. Also clamp the scale (while unlikely, negative scale wasn't prevented).