Unregistering comms in Comm Manager

- [x] Deleting a comm now unregisters the comm (because creating it already registers it). 
      Unregistering the comm does not close it anymore (because registering the comm does not open it). 
- [x]  closing a widget should not remove it from the collection of widgets Widget.widgets. Closing, reopening a comm is independent of the lifetime of the widget. 
- [x] deleting a widget unregisters the widget from Widget.widgets. Decrements the ref count of the underlying comm. 

-Strictly speaking, after #6194, you can actually reopen a closed comm or display a widget that was closed and reopened, even though it is not quite the point of the PR (whose goal is to have the comm opened on the construction of the widget, and let the user specify the model id). 

-The reason why I opened a separate PR here is to put together the minor changes and discussion specific to comm itself. I wanted to clarify the lifetime of the different comm/widget objects as I am playing with the widget persistence PR.