New directives to make building a control UI easier
Restructured websocket to move status variables into their own object. This makes following the code much easier, and means variables can have their own properties, methods etc.