Add mixin to create and clean up event listeners when component is unmounted

Listen to an event using the listenTo function.
The listener is cleaned up when the component is unmounted
Make sure loading spinner is mounted before trying to set props
Merge pull request #142 from mlolson/event-mixin

Add mixin to create and clean up event listeners on components