Combining listeners and callbacks

Event internally had 2 lists. One list of ICallbacks and one list of
IListeners, where an IListener  is a Listener that holds the ICallback.

These 2 arrays are combined into a single array of IListener<TA>, making
it easier to reason about the code.