Add protected EventEmitter::HaveListener() function.

if EventEmitter exposed a protected HaveListeners method then objects that emit events with payloads which are particularly costly to construct could optimize by using it.  This is a naive implementation that affords a 15% performance improvement in one sample use case (yajl node bindings).  This patch might be more interesting if the HaveListeners check itself could be made less expensive.