gui: clean up
gui canvas: avoid blinking empty rendering

the drawing routine runs in a separate thread. So it could happen that while updating
the list of images, it would pick the list on the way to be constructed.
Instead, ensure that the new list is set only once fully constructed, and then ensure
we only use this list in the drawing method.
acq: add potential code to force the image update if b/c would be different

Could work well, but too dangerous wrt CPU usage without a lot of testing on
real hardware with large CCDs.
Also, it'd be nice to find a nice way to define what is a "similar" range.