Always pass an event object as the first argument to on.

This is an API breaking change, so I don't expect it to be merged
without discussion. The motivation is to unify the API with the
jQuery convention of always passing the event object as the first
argument. Currently the event name is only passed as a first
argument if there is more than one event handler.

This is behaviour of the current API:

    obj.on('a', function(data){});
    obj.on('a b', function(evt, data){});

This is the behaviour of this PR:

    obj.on('a', function(evt, data){});
    obj.on('a b', function(evt, data){});

Thoughts?