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. 

As I understand things right now, the model id and the comm id are exactly the same always.  I think it makes sense for a widget to keep the same model id throughout its lifetime, which would mean that its comm needs to keep the same comm id throughout the widget's lifetime. Which leads to this---keeping the same comm and connecting/reconnecting it as needed.

On the other hand, it might be better to separate the model id and comm id (I'm not sure if/where the code depends on them being the same).  Then the model and comm lifetimes are more easily separated.