added a type WidgetWire of pair of widget and wire tied together by the ...

...same id, new id are generated by a state monad

Not sure if I should have directly merge this branch... Anyway, it gives the opportunity to review and comment.