Do not remove sockets' internal event listeners

When adding a "custom" event listener to the underlyin socket, use the
functions named "addCustomEventListener" or "addCustomEventListeners".
This will keep track of which event listeners have been added. When it's
time to remove custom events listeners, use
removeAllCustomEventListeners.

Fixes #392