Improve events performance in some cases by 20x.

Things like [Chaplin](http://chaplinjs.org) are using advanced memory management heavily. This includes unbinding of all events too.

Events are getting unbound all the time. When other objects may still try to trigger events, this will increase performance by 20x.

Initially taken from [my Backbone optional-dependencies fork](http://exosjs.com).

Proof of 20x speed: http://jsperf.com/exoskeleton-events-vs-backbone-events
Merge pull request #2858 from paulmillr/patch-1

Improve events performance in some cases by 20x.