doc: add some roles for the SPARC
gui: improve name of some new SEM VAs
driver tmcm: detect if the device has no power for the motors

The device look fine, but the motors will not move, which is kind of important.
The only way I found to detect is to rely on the fact the programs don't run if
the device is not powered.

Also timeout from the driver side in case the reference program never ends,
which could happen for instance if the power suddenly goes down during referencing.
driver tmcm: optimisation during move by only updating position of moving axes

No need to update the position of the axes which are not expected to move.
That saves bandwidth (and time) on the very slow port (9600 bauds)
driver phenom: add comment
driver tmcm: small improvements + clean up
gui: wait for focus move to be over before sending new move request

If the focus move is slower than the time between two move requests (used to be 10 Hz),
the move requests will accumulate, and cause a delay between what the user asks and the
actual hardware move.

I've tried making the drivers more clever, by accumulating requests, but then we end up
with lots of complex code for handling cancellation of multiple futures simultaneously.

So instead we change the GUI code to explicitly wait for the move to be over before
requesting more. This allows to automatically adapt to the speed of the hardware.

Also simplify the code as we _never_ have multiple focus (for now), and if we ever do
it will not be horizontal vs vertical.