move function from anonymous to enable v8 optimisation

This function is being called ALOT in my application, yes, this optimisation only gives you a few micro seconds but when you're calling it ALOT all of this helps

Shouldn't have changed the behaviour at all, All I've done is moved it out to its own declaration and named it so that when people do say `connection.listeners('data')` they don't just see `[Function]` , now they would see `[Function: carrierOnEvent]` - helps when debugging too :)

Let me know if you have any thoughts on why this shouldn't go in; thanks for the module!