Make State a subclass of Parameter

and use the hardware state over the software one
if possible.
Split transition and state checking
Refine FSM errors
Update tests
Fix state getter on dummy ContinuousRotationMotor
Update the docs