Internally, listeners are set up as a map, with event names as the key, and and array of
function references as the value.

<img src="https://s3.amazonaws.com/mjs.neo.learning.images/EventsInMemory.png"/>

<!-- 
<table>
<tr><th>component.listeners</th><th></th><th>Config</th></tr>
<tr>
<td width="45%"><pre style="font-size:12pt">
    {    
        change: [  ,  ]
        foo: [  ]
    }

</pre></td>
<td width="5%"></td>
<td width="45%"><pre style="font-size:12pt">
    // Adds the "change" entry and adds 1st array element
    listeners: {
        change: data=>console.log(data)
    }

    // Uses existing "change" entry and adds 2nd array element
    listeners: {
        change: data=>console.log(data)
    }

    // Adds the "foo" entry and adds 1st array element
    listeners: {
        foo: data=>console.log(data)
    }
</pre>
</td>
<td><pre style="font-size:12pt">
</pre></td>
</tr>
</table>
-->