widgets.completion: ensure that we always call dispose()

Add an implementation for __del__ to ensure that dispose is always
called.  This ensures that notification messages are never delivered
to deleted objects.

This might not actually be needed, but it's better to be safe and
account for various versions of PyQt4 since there's no harm in doing so.

Closes #346

Reported-by: @alex-gulyas via github.com
Signed-off-by: David Aguilar <davvid@gmail.com>