Optimizations to the event broadcasting system

The broadcaster now explicitly handles event types, clients can register for specific types.

Using that, DisplayObject only registers for one of the broadcasted events if it itself has any listeners registered for said event.
Reduce amount of work done for the constructFrame event

This is achieved by only calling _markAsDirty() in MovieClip's _gotoFrame() if the display list has changed
Merge pull request #438 from tschneidereit/optimize-events

Optimize handling of broadcasted events