add an initial collection of dock events.
add support to the dock area for events
Add more event types to support dock events
add a dock events enabled flag to the dock area
add support for forward dock events to the declaration
add support for dock item visibility events

This support collapses rapid changes in visibility into a single
notification.
move the visibility event handling to the dock item

This was required to accurately track visibility events when a dock item
is maximized in the dock area.
add support for extended and retracted events
Post the undocked events at the proper times
post a docked event at the proper times
update method names
add an item closed event
add support for the item closed event

This also updates dock item to not emit a hidden event while the item is
being closed. The closed event itself is sufficient.
remove unused event class
use and int enum to distinguish dock item event types
update for dock item event enum
emit the DockTabSelected event when a tab is selected.
add a context manager for suppressing dock events
add an event logger to the dock area example
update the initial layout