Change remove() to disconnect Components from DOM and from broacasters

remove() should now be used to effectively destroy Components. An error
will be thrown if the user tries to reuse a remove()-ed Component.

detach() should be used to disconnect Components temporarily (this
method replaces the previous functionality of remove()).

Close #601.
should probably change this comment to "Detaches a Component from the DOM" just to have naming be consistent.