Improved on-ping event

* Now actually has an event
* 4th param to controllers constructor can optionally be a function which listens on that event
* Event has same parameters as array which is passed to crawl callback function (is a GenericEvent rather than an array though