Fix issue with WidgetComponent not being removed from DOM

With previous cleanup efforts, this left a WidgetComponent attached to the DOM after the component it was wrapping was removed.  Added additional code to prevent this issue and completely remove the widget component from the DOM.