GUI cleanup, stage 1

This cleanup will make the GUI more modular, so that it can
be used either with or without a robot, and possibly for
normal video, and not just timelapse.
GUI cleanup: avoid illegal states, being runloop work
GUI: Bugfixes for the camera to work