Robots can be trained to vacuum off a nest

Previously only removing the top of a nest worked.

Also fixed a bug in robots referencing backside widgets.
Only left mouse button opens backsides

Previously any button would.
Fixed a bug setting a sensor's active flag twice

Where the listener was added twice to the widget's element.
Fixed a bug in generating JSON

When structure is circular. E.g. a sensor for a widget on its backside.