Changed how listeners are called
This fixes issues when a Listener implemention throws an exception, causing other listeners (and possibly more logic) to not be handled correctly.  Thus making it more error tollerant.  In addition it will make invoking the listerners asynchronously earlier later.
This required the addition of the threadly library as a dependency (which I plan to use in other places more later as well)
Merge pull request #18 from jentfoo/develop

Changed how listeners are called