Refactors constructor to accept either string or already existing HTMLElement,
Implements removeListeners method to remove all event subscriptions,
Implements removeAllListeners to remove all event subscriptions and to clear the event map,
Implements exchangeable HTMLElement feature