Fix for #366
Created by: mguijarr
This is a fix for #366 (closed), and more generally it adds a safe_emit
function that can be used to ensure the Master client will receive updates from server. It uses the 'callback' feature from socketio: events (= signals from Hardware Objects) are appended to a double-ended queue, and delivered in FIFO order. When callback is executed, it means the Master client has received the message so the event is deleted and the next one can be sent.
It is enough to send events to the Master client to get all clients up-to-date thanks to the mechanism already in place for Remote Access.
This PR also brings some little improvements to Remote Access, like a dedicated Python module and a new setRaMaster
event which will also be used later when switching from one Master client to another.
It has been tested here and seems to work beautifully.