Transitionend event name detection

This should be fine or you can make your own version based on it.
I've tried to keep the code as DRY as possible.
Warning: based on the MDN docs this is very likely to fail on Safari >= 3.0 && < 3.2. I believe only browser sniffing trickery is the only way to avoid this, which should be redundant considering the market share of those versions.

About the event names:
- transitionEnd doesn't exist
- there is no MSTransitionEnd or even if there is, IE supports the w3c name
- opera has 2 differently cased event names

Adding the proper event name to $.support would need a Deferred object and be relatively useless.

Thanks.

References used:
- https://developer.mozilla.org/en-US/docs/Web/Reference/Events/transitionend
- https://developer.mozilla.org/en-US/docs/Web/CSS/transition
- http://msdn.microsoft.com/en-us/library/ie/hh673535%28v=vs.85%29.aspx