view/ruler: Make horizontal arrow-key scrolling useful

Currently, the horizontal scroll bar scrolls by a very small amount
of time when the arrow keys on the keyboard are used. This is because
View::horizontalScrollBar's single step size is never set.

In order to make the arrow keys become useful, this patch sets this
step size equal to the major tick width of the ruler. This results
in scrolling by a fair amount of time without losing track of the
context and also preserving the positions of the major ticks on
the ruler.

The reason why the patch introduces a signal on the ruler is that
the major tick distance is unknown until the ruler has been painted.
As the paint event can be caused by several different events I
considered it more robust to use a callback that triggers adjustment
of the step size as needed.