wiring backend to frontend

current test commands

vm {"op":"create", "name":"test"}
vm {"op":"use", "name":"test"}
vm {"op":"list"}
vm {"op":"devices"}

control/test {"op":"status"}

control/test {"op":"create", "class":"breadboard.devices.RNG", "name":"rng", "config":{"seed":2894829238}}
control/test/rng/pulse {}
control/test {"op":"create", "class":"breadboard.devices.RNG", "name":"rng2", "config":{"seed":2894829238}}
control/test/rng2/pulse {}
control/test {"op":"wire", "from-device": "rng", "from-port": "random-number", "to-device": "rng2", "to-port": "pulse", "carrier": "control"}
control/test/rng/pulse {}
control/test {"op":"create", "class":"breadboard.devices.Counter", "name":"counter", "config":{}}
control/test {"op":"wire", "from-device": "rng2", "from-port": "random-number", "to-device": "counter", "to-port": "data-in", "carrier": "data"}
control/test/rng/pulse {}
control/test/rng/pulse {}
control/test/rng/pulse {}

control/test {"op":"wire", "from-device": "rng2", "from-port": "random-number", "to-device": "counter", "to-port": "emit-count", "carrier": "control"}
control/test/counter/emit-count {}

control/test {"op":"status"}

control/test {"op":"uistate", "device":"counter", "state": { "x":250, "y":250 } }

control/test/rng2/pulse {}