Abstract event manager

sharing event manager API
Definitely worth a comment block to elaborate on relation to Socket.  No one likes vernacular changes unless they are justified.