gui: improve display of spectrum/AR repetition

Use better default pixel size => more likely the density the user expects

Automatically update the view when the repetition is changed

Also display the repetition when the pixel size control is focused/hovered.

Simplify code for detecting which repetition to display. And especially avoid accessing overlay directly from the controller.

Change API of overlay => hopefully something more obvious?
gui ROA selection: respect the wish of the user when resizing ROA

When changing just height or just width of a ROA, it's very likely that the user
wants precisely this new value. So adjust the pixel size so that it fits perfectly the new value.

This required to side modifications:
 * ROI in overlay is stored as float (instead of int) => don't round the value to the screen, as it's not important anyway
   Cairo and wxPython can both handle pretty well float values for drawing
 * Canvas unsubscribe to ROA VA when changing it. Because while it's changed, it can be changed another time by the streams.
   This type of multiple notifications are not handled well by the VA code, and an old value might arrive after a new value.