Support weakref.WeakMethod callbacks and automatically unsubscribe dead weakref.WeakMethod callbacks upon property change triggering dead callback.
Cause underlying Qt object to be destroyed when device widget is closed.
Add closeEvent override in device widget that unsubscribes all of the widgets property change notification callbacks.
Back out weakref handling, somewhat ugly code from property_client.py.