widgets.completion: ensure that dispose() is called

dispose() unregisters widgets from model notifications.  Hook into the
destroyed(QObject*) signal so that widgets unregister themselves as they
are destroyed.

Signed-off-by: David Aguilar <davvid@gmail.com>