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.

Sorry this pull request is a little messy, this is my first use of GIT.