Allow widgets to be constructed from Javascript

Also fixes a bug in the comm manager.
this can be done with a property or traitlet, so the logic is always triggered by `self.comm = Comm(...)` Explicit setters/getters aren't very Pythonic.